我现在要将16个字节的数据通过串口接收,通过判断第1-4个字节,再决定要发送的字符串,如果不用FIFO,一个字节就会产生一个中断,而且要判断的话就不知道该怎么做。
但是现在出现的问题是问题是这样的,我接收中断使用的16级FIFO。上位机给我传16帧(EB90EB9000060102030405060708090A)的数据正好进一次中断,然后判断前四个是不是EB90EB90以及功能码。但是这种方法容易出现的问题是假如第一位错误比如先发过来一个01,然后才是需要的16帧数据,这样当FIFO接收到09时就会进入中断,读过FIFO数据后 FIFO清0,然后0A就留在了FIFO第一位,然后等满16级再次进入中断,这样就会出现一直错一位数据。所以我想当判断接收错误时,把FIFO清0,这样下次再接收EB90EB9000060102030405060708090A时就不会错位了。但是发现清不了还是一直错位。
一直没有解决这个问题,能帮帮我吗?比较着急,咱们互相探讨,看看能否解决。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>