联想平板老显示初始化失败,放音未恢复,看检查sD卡状态sd卡lock是什么意思思

放音初始化失败怎么回事_百度知道
放音初始化失败怎么回事
我希望你能帮助:中国 1,首先确保硬件是没有问题的。如果扬声器是没有错的,声卡也没问题,如果你已经过测试,在其他机器真的不错,那么你可以继续往下看。
中国二,请确保所有电缆完全正确的。然后扬声器上电时,该音量开关。 中国三,声卡驱动程序正确安装,如果是板载声卡,最好是安装所提供的主板驱动程序光盘上的驱动程序。 (实际上,电脑不出声,大多是因为声卡驱动的时候是不正确的。一般情况下,安装了声卡驱动程序,你将有一个小音箱在任务栏图标的右下角。)中国 4,如果司机是绝对正确安装,然后再次看电脑的音量设置。 具体方法是:双击任务栏的小喇叭图标,在弹出的“音量控制”对话框中查看“音量控制”和“波形”两年内不把音量关到最小,或者被设置为静音。 如果没有这两个选项的对话框,请单击“选项”菜单 - 选择“属性” - 选择“音量控制”和“波形”显示下列音量控制“中的“2,然后设置正确。第四步设置为安装后只有正确的声卡驱动程序:关注。 中国特别提醒:其实,很多时候,因为计算机不能正常工作都是小问题,软故障,仔细分析,很多时候可以很容易地解决这个问题
其他类似问题
初始化的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁注册时间: 13:16
主题数: 13
论坛积分:42
&//初始化SD卡
//如果成功返回,则会自动设置SPI速度为18Mhz
//返回值:0:NO_ERR
//&&&&&& 1:TIME_OUT
//&&&&& 99:NO_CARD&&&&&&&&&&&&&&&&
u8 SD_Init(void)
&&& u8 r1;&&&&& // 存放SD卡的返回值
&&& u16& // 用来进行超时计数
&&& u8 buff[6];
&&& //设置硬件上与SD卡相关联的控制引脚输出
&//避免NRF24L01/W25X16等的影响
&RCC-&APB2ENR|=1&&2;&&&&&& //PORTA时钟使能
&GPIOA-&CRL&=0XFFF000FF;
&GPIOA-&CRL|=0X;//PA2.3.4 推挽 &&&&
&GPIOA-&ODR|=0X7&&2;&&& //PA2.3.4上拉
&SPIx_Init();
&&SPIx_SetSpeed(SPI_SPEED_256);//设置到低速模式&&
&SD_CS=1;&
&&& if(SD_Idle_Sta()) return 1;//超时返回1 设置到idle 模式失败&&
&&& //-----------------SD卡复位到idle结束-----------------&
&&& //获取卡片的SD版本信息
&&SD_CS=0;&
&r1 = SD_SendCommand_NoDeassert(8, 0x1aa,0x87);&&&&&
&&& //如果卡片版本信息是v1.0版本的,即r1=0x05,则进行以下初始化
&&& if(r1 == 0x05)
&&&&&&& //设置卡类型为SDV1.0,如果后面检测到为MMC卡,再修改为MMC
&&&&&&& SD_Type = SD_TYPE_V1;&&&
&&&&&&& //如果是V1.0卡,CMD8指令后没有后续数据
&&&&&&& //片选置高,结束本次命令
&&&&&&& SD_CS=1;
&&&&&&& //多发8个CLK,让SD结束后续操作
&&&&&&& SPIx_ReadWriteByte(0xFF);&&
&&&&&&& //-----------------SD卡、MMC卡初始化开始-----------------&
&&&&&&& //发卡初始化指令CMD55+ACMD41
&&&&&&& // 如果有应答,说明是SD卡,且初始化完成
&&&&&&& // 没有回应,说明是MMC卡,额外进行相应初始化
&&&&&&& retry = 0;
&&&&&&& do
&&&&&&&&&&& //先发CMD55,应返回0x01;否则出错
&&&&&&&&&&& r1 = SD_SendCommand(CMD55, 0, 0);
&&&&&&&&&&& if(r1 == 0XFF)return r1;//只要不是0xff,就接着发送&&
&&&&&&&&&&& //得到正确响应后,发ACMD41,应得到返回值0x00,否则重试200次
&&&&&&&&&&& r1 = SD_SendCommand(ACMD41, 0, 0);
&&&&&&&&&&& retry++;
&&&&&&& }while((r1!=0x00) && (retry&400));
&&&&&&& // 判断是超时还是得到正确回应
&&&&&&& // 若有回应:是SD卡;没有回应:是MMC卡&&
&&&&&&& //----------MMC卡额外初始化操作开始------------
&&&&&&& if(retry==400)
&&&&&&&&&&& retry = 0;
&&&&&&&&&&& //发送MMC卡初始化命令(没有测试)
&&&&&&&&&&& do
&&&&&&&&&&& {
&&&&&&&&&&&&&&& r1 = SD_SendCommand(1,0,0);
&&&&&&&&&&&&&&& retry++;
&&&&&&&&&&& }while((r1!=0x00)&& (retry&400));
&&&&&&&&&&& if(retry==400)return 1;&& //MMC卡初始化超时&&&&&
&&&&&&&&&&& //写入卡类型
&&&&&&&&&&& SD_Type = SD_TYPE_MMC;
&&&&&&& //----------MMC卡额外初始化操作结束------------&&&&
&&&&&&& //设置SPI为高速模式
&&&&&&& SPIx_SetSpeed(SPI_SPEED_4);&&
&&SPIx_ReadWriteByte(0xFF);&
&&&&&&& //禁止CRC校验&&&
&&r1 = SD_SendCommand(CMD59, 0, 0x95);
&&&&&&& if(r1 != 0x00)return r1;& //命令错误,返回r1&& &&&
&&&&&&& //设置Sector Size
&&&&&&& r1 = SD_SendCommand(CMD16, 512, 0x95);
&&&&&&& if(r1 != 0x00)return r1;//命令错误,返回r1&&
&&&&&&& //-----------------SD卡、MMC卡初始化结束-----------------
&&& }//SD卡为V1.0版本的初始化结束&
&&& //下面是V2.0卡的初始化
&&& //其中需要读取OCR数据,判断是SD2.0还是SD2.0HC卡
&&& else if(r1 == 0x01)
&&&&&&& //V2.0的卡,CMD8命令后会传回4字节的数据,要跳过再结束本命令
&&&&&&& buff[0] = SPIx_ReadWriteByte(0xFF);& //should be 0x00
&&&&&&& buff[1] = SPIx_ReadWriteByte(0xFF);& //should be 0x00
&&&&&&& buff[2] = SPIx_ReadWriteByte(0xFF);& //should be 0x01
&&&&&&& buff[3] = SPIx_ReadWriteByte(0xFF);& //should be 0xAA&&&&
&&&&&&& SD_CS=1;&&
&&&&&&& SPIx_ReadWriteByte(0xFF);//the next 8 clocks&&&
&&&&&&& //判断该卡是否支持2.7V-3.6V的电压范围
&&&&&&& //if(buff[2]==0x01 && buff[3]==0xAA) //不判断,让其支持的卡更多
&&&&&&& {&&
&&&&&&&&&&& retry = 0;
&&&&&&&&&&& //发卡初始化指令CMD55+ACMD41
&&& &&&r1 = SD_SendCommand(CMD55, 0, 0);
&&& &&&if(r1!=0x01)return r1;&&&
&&& &&&r1 = SD_SendCommand(ACMD41, 0x);
&&&&&&&&&&&&&&& if(retry&200)return r1;& //超时则返回r1状态&
&&&&&&&&&&& }while(r1!=0);&&&
&&&&&&&&&&& //初始化指令发送完成,接下来获取OCR信息&&&&
&&&&&&&&&&& //-----------鉴别SD2.0卡版本开始-----------
&&&&&&&&&&& r1 = SD_SendCommand_NoDeassert(CMD58, 0, 0);
&&&&&&&&&&& if(r1!=0x00)
&&&&SD_CS=1;//释放SD片选信号
&&&&return r1;& //如果命令没有返回正确应答,直接退出,返回应答&
&&&}//读OCR指令发出后,紧接着是4字节的OCR信息
&&&&&&&&&&& buff[0] = SPIx_ReadWriteByte(0xFF);
&&&&&&&&&&& buff[1] = SPIx_ReadWriteByte(0xFF);
&&&&&&&&&&& buff[2] = SPIx_ReadWriteByte(0xFF);
&&&&&&&&&&& buff[3] = SPIx_ReadWriteByte(0xFF);&&
&&&&&&&&&&& //OCR接收完成,片选置高
&&&&&&&&&&& SD_CS=1;
&&&&&&&&&&& SPIx_ReadWriteByte(0xFF);&&&
&&&&&&&&&&& //检查接收到的OCR中的bit30位(CCS),确定其为SD2.0还是SDHC
&&&&&&&&&&& //如果CCS=1:SDHC&& CCS=0:SD2.0
&&&&&&&&&&& if(buff[0]&0x40)SD_Type = SD_TYPE_V2HC;&&& //检查CCS&
&&&&&&&&&&& else SD_Type = SD_TYPE_V2;&&&&
&&&&&&&&&&& //-----------鉴别SD2.0卡版本结束-----------
&&&&&&&&&&& //设置SPI为高速模式
&&&&&&&&&&& SPIx_SetSpeed(SPI_SPEED_4);&
&&&&&&& }&&&&
&&& return r1;
SPI协议是这么解释的
但是第30位HCS具体代表什么意思&&&&&
注册时间: 10:41
回复数: 53287
主题数: 373
酷贴数:27
论坛积分:57106
来自: 湖南
sd卡协议(物理层).pdf
这个文档都有介绍的.
你还是多看看文档吧.这种定义性的说明,都可以在文档查到.硬是让我帮你找,没什么必要.所谓自己动手丰衣足食.
在:sd卡协议(物理层).pdf
的106页.Figure&7.2下面的第七行.
我的淘宝小店:
请选择一个版面...
STM32-F0/F1/F2专区
STM32-F3/F4专区
MSP430专区
ARM7/ARM9/ARM11专区
其他Cortex系列
uCOS & uCGUI & Emwin
trochili(飞鸟)操作系统
中国RTOS联盟
FPGA/CPLD/DSP专区
数字,模拟,高频电路
编程语言学习
蓝牙/WIFI/Zigbee等通信技术
开发工具专栏
UOL 单片机面向对象语言
四轴飞行器
DIY大赛专区
DIY项目资料专区
论坛建设区
二手交易专栏
& 开源电子网() |

我要回帖

更多关于 sd卡lock是什么意思 的文章

 

随机推荐