我用的是评估板,设置为3.3V的SPI模式,单片机为M8,与376通讯成功(CHECK_EXIST和SET_USB_MODE成功),但是,插上SD卡后,执行CH376_DISK_MOUNT命令,返回总是0x31,这应该是不成功吧,但是ACT#灯会亮,INT引脚也会产生中断,我就不明白了,我换了另外买的一个376的板子,同样如此,跪求解决[Emot]20[/Emot]
应该是你没有等到中断之后就返回了,将中断函数的超时去掉在进行调试。
谢谢,但是将超时去掉(用while(SD_INT),就是直到INT变低,在读状态),还是0x31,灯还是亮,拔掉SD卡,灯就灭,看起来貌似是正常的,可就是中断值不正确...
那中断引脚变低了吗?变低之后有没有发0X22的命令获取中断状态?
恩 中断引脚变低了 ,所以才用0x22读状态,读出来0x31..
那发完0X22命令之后,中断引脚拉为高电平了吗?
是的 ,我循环进行DISK_MOUNT命令,用示波器看得到INT引脚高低交替变化
那肯定有问题,按照正常步骤的话,拉到高电平之后就应该保持高电平。你中断函数的引脚定义是否有问题?是配置成输入模式吗?需要配置成悬空输入模式。
是的,引脚配置为高阻输入(DDXN=0,PORTXN=0),我的意思是,我循环使用DISK_MOUNT命令,那INT引脚是不是也要随着变化?
CH376_DISK_MOUNT为0X31,而你读出的数据也是0X31 说明CH376根本没对这个命令进行应答。很有可能是中断没有等到就去读中断状态了。 这个问题很有可能是这样。检查中断吧。看看是不是CH376的INT为0的时候去读的中断。还是在INT没有变为0就去读中断状态了
OK,解决了,谢谢,还是程序的问题