ch375采用的查询中断方式(375的中断引脚没用),现在pc要发送一个400字节的数据,单片机的流程是,不断的向ch375发送0x22命令在读出是否是否有中断以及中断的内容是什么,如果有数据到来就读出。 pc先发一个字节的特征数据,然后再按64字节一个包的方式发给单片机。问题是当单片机接受到特征数据后,请375缓冲,再查询在一次375的中断时,发现依然能查询中断状态(此时pc并没有发送数据),读出的内容依然是清楚375缓冲前的那个数据,并不是每次都这样...(原来我在每次查询中断时有50us的延时,发现单片机查询最多7次就有一次是错误的,后来我把50us改成了500us发现发现单片机查询最多30次就有一次是错误的情况出现)。请问这是为什么??是我的延时不够吗???? 还有:(1)当单片机查询中断状态没有数据到来时,需要清缓冲吗? (2)pc发送了0个字节给pc,单片机需要清缓冲吗???
没必要这样做,你可以查询命令端口,命令端口的最高位代表中断引脚的状态,如果有中断则处理,没有则不理会。如果你始终读取中断状态,这时候又没有中断。这样本身就是矛盾的。只有再次来数据的时候,CH375才会把上次的覆盖掉。所以你读出的数据仍然是上次的数据。 其实你下面的两个问题我没怎么看明白。需要缓冲什么?只有CH375成功的接收到PC下发的数据后,才会中断通知MCU去读。 查询命令端口很简单,就是在读数据的时候吧A0=1即可,就是读命令端口。
1、处理中断的流程是错误的,获取中断状态的命令只有在中断产生之后才可以用 2、单片机端如何操作375,取决于当前的中断状态是什么 你把整个通讯的流程想复杂了,不涉及什么延时、缓冲之类,建议你先熟悉我们的例程吧,下载CH372EVT.ZIP,参考PUB/TEST
回复:scm 我明白你的意思,不过我只有通过不断的读取中断状态才能判断中断中断时否到来。因为我没有用到375的中断引脚
回复:scm 我明白你的意思,不过我只有通过不断的读取中断状态才能判断中断中断时否到来。因为我没有用到375的中断引脚
回复:红桃六 请问如何查询命令端口?
1、375的硬件连接是并口方式,不连接中断线,那么可以读取命令口,通过判断最高位是否为0来确认是否有中断产生;串口方式下必须连接中断线 2、不正确的流程是不能获得正确的结果的,流程必须遵守
在和读取数据的函数就有一点区别,就是A0 =1.
查询命令端口 是什么意思? 命令端口不是只能写吗? 数据端口才是可读写的呀
查询命令端口是指从CH375B的命令端口读取中断标志,位7等效于INT#引脚,这样不连中断引脚也可以查询中断。