[求助]:关于中断方式

另外,我看ch375hf.pdf中,写Ch375LibConfig的位7是保留不用的,可是ch375hfc.h中写道:CH375LibConfig的第7位是用来表示是采取中断还是查询方式。到底哪个对?

另外,在采用中断方式时,我写了如下的中端函数: void CH375Interrupt( void ) interrupt 0 using 2 { xWriteCH375Cmd( CMD_GET_STATUS ); /* 获取当前中断状态,发出命令后至少延时2uS */ CH375IntStatus = xReadCH375Data( ); /* 获取中断状态 */ if ( CH375IntStatus == USB_INT_DISCONNECT ) CH375DiskStatus = DISK_DISCONNECT; /* 检测到USB设备断开事件 */ else if ( CH375IntStatus == USB_INT_CONNECT ) CH375DiskStatus = DISK_CONNECT; /* 检测到USB设备连接事件 */ }

有一点不明白,单片机是通过中断来控制ch375并与之通讯的,可是ch375的子程序库是如何利用中断的? 从上面的中端代码中看不出在中端触发后子程序库有什么实质性动作。可是我在测试的时候上面的代码可以正常工作,是不是我理解的有问题啊? 请大家帮忙,谢谢了~~~

(1)ch375hfc.h中的对 (2)子程序库是通过一些全局变量来获取U盘当前的一些状态,如:连接,断开之类。


谢谢,还不是特别明白,我再继续学习.


命令Get_Status获取中断状态,在主机模式下,10H-1FH是USB主机方式的常用中断状态,20H-3FH是USB主机方式的操作失败状态,用于分析操作失败原因。

上面的代码中只处理了USB_INT_DISCONNECT和USB_INT_CONNECT两种情况。其他情况呢?

比如USB_INT_DISK_WRITE为"USB存储设备写操作,请求数据写入",如果出现了USB_INT_DISCONNECT的话不需要程序处理吗?


(1)别的状态库里会做处理 (2)在写过程中出现USB_INT_DISCONNECT,就没法再继续写,库也会处理的


谢谢


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