麻烦各位大虾帮帮忙,我用CH375时,初始化都正确,但初始化结束后,中断引脚INT#始终为高电平,无法进入中断,我用的是内置固件的USB设备方式,中断引脚接89s52的INT0引脚上,麻烦了~~~~~~~~
设置完模式之后,中断脚当然为高电平了,你现在将375的USB口接到计算机上面去,可以找到新的硬件吗???如果可以的话,那么,你在什么情况下没产生中断,你计算机这边有给你发送数据出来吗??
你所说的始终是高电平指的是初始化之后的其他操作,中断引脚INT#始终为高电平吗?如果光初始化命令的话,中断脚是不拉低的。 1、看一下你单片机端有没开中断; 2、发一个能让375产生中断的命令,直接测一下375的中断引脚INT#拉低没。
谢谢各位的回答, 我有些不太懂,当初始化结束后, 在什么情况下会产生一个有效的中断以发送数据???
你可以这样看一下,在初始化时将375设置成模式6(主机模式)之后,这时如果你在USB口插上U盘375就会将INT#拉低,产生中断。至于那些命令回将INT#拉低、产生中断的话你可以看375的说明书。
呵呵,试了一下,一切都正常了,谢谢你啊, 不过我还想问一下,CH375作为USB设备方式时,在什么情况下产生中断以发送数据???需不需要主机发送命令啊???
我和他情况一样,初始化之后没有中断就不能进一步传输数据啊??怎样才产生中断啊?
得先让上位机发个数据下来,375收到数据后就后就会产生中断,在你读走数据或是解锁之后就可以上传数据了(也就是将数据写到375中,等待主机取走,再产生上传成功的中断)。 具体你可以下载CH372EVT.ZIP,参考:CH372EVT\PUB\TEST\MCU\TEST.C这个例子。
哦,是这样啊,真是太谢谢你了。 以后有什么不会的问题,还得多多请教你啊,呵呵~~~ 多多交流~~
我还是不怎么明白。。 unsigned char CH375_Wait_Int() //等待中断信号,即INT引脚上产生低电平,并获取中断状态码,获取后INT恢复高电平,以产生下一次中断信号 { CH375_INT=1; //IO作输入先置高 while(CH375_INT); //等待中断 CH375_Write_Cmd(CMD_GET_STATUS); //产生操作完成中断,获取中断状态 return CH375_Read_Dat(); } unsigned char CH375_InitDisk() { unsigned char status,i,j=0;
status=CH375_Wait_Int();/*
你哪里不明白?表达清楚。
我现在375初始化成功了。。然后到U盘初始化的时候。。等待中断信号。。unsigned char CH375_Wait_Int() //等待中断信号 然后INT一直都是高电平。。不知道应该怎么样。我把U盘初始化程序屏蔽。。然后发现。在status=CH375_Wait_Int(); 这里停住了。。