CH376磁盘初始化,返回值为0

如题,376连接SD卡,初始化函数CH376DiskMount( )老是返回0,正确的应该是0x14,不解,望指教

你前面测试命令有没有正常通过?设置SD卡模式为3?有没有检测到SD卡连接?


我用的是模拟SPI的程序,SD卡没有用检测脚,但是确定连接好了,因为Query376Interrupt( )能得到返回值为1,CH376GetIntStatus()获取中断并取消中断请求的时候,返回值为0


你最好先做一下测试命令,按照你的描述应该是检测到了中断,获取到的中断状态不对。另外你可以用示波器看一下SD卡的信号脚。


测试命令是什么内容啊,在例程里什么地方?我的中断状态现在返回0x82,0x82代表什么错误啊,我把sd卡拔掉也能返回0x82


测试命令是check_exist(0x06),测试单片机与CH376之间的通讯,应该在mInitCH376Host里面。 返回0x82代表SD卡没有连接上,说明你SD卡那块硬件连线有问题。


我的中断好像有问题,因为不熟悉这款单片机(c8051f020),我用P6口(P6.4-SCS,P6.5-SCK,P6.6-SDI,P6.0-SDO)模拟SPI接口,P6.0好像检测不到中断,我测试过P6.0,做数字输入时,可以检测到高、低电平。 P6口不能位寻址,所以我用了代替: //CH376_SPI_SCS = 1; P6 |= 0X10;

//CH376_SPI_SCS = 0; P6 &= 0XEF;

CH376_SPI_SCK = 0; P6 &= 0XDF;

//CH376_SPI_SCK = 1; P6 |= 0X20;

//if ( CH376_SPI_SDO ) if ( P6 & 0X01 ) d ++;

UINT8 Query376Interrupt( void ) { return( (P6&0x01)? FALSE : TRUE ); /* 如果未连接CH376的中断引脚则查询兼做中断输出的SDO引脚状态 */ }

我觉得没问题啊,但是好像中断等不到,问题出在哪儿,帮忙指点一下,不胜感激


确定CH376没有给中断信号,我手动给SDO一个低电平,可以检测到,说明不是单片机I/O口配置的问题,一直等不到中断,有哪些情况下CH376不会给中断信号,帮忙指点一下,不胜感激


那你测试命令应该也过不了吧。 确认一下硬件有没有问题?晶振有没有起振?复位输出25脚电平是否为低?


我的CH376初始化函数CH376DiskMount( )返回值正确为0x14,指示灯点亮,但是初始化磁盘老是等不到中断,UINT8 Query376Interrupt( void ) { if(P6&0x01) return FALSE; else return TRUE;

}在查询中断的时候,手动给一个低电平,能检测到,晶振起振12M,复位输出25脚都是低,376就是不给中断信号,还有什么情况会影响376的中断信号呢,请指教


问题解决了,没有宏定义sdo,所以376初始化的时候,没有设置SPI的SDO引脚的中断方式,低级错误,真费时间


只有登录才能回复,可以选择微信账号登录