usart.c文件中,串口中断程序的问题

2019-08-14 03:54发布



捕获.PNG
在usart.c文件,串口中断程序中,条件语句为USART_RX_STA>(USART_REC_LEN-1) ,
但是我怎么觉得应该是                                USART_RX_STA>(USART_REC_LEN)
假设接受200个字节,最后一个字节内容为A
执行结束USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;语句时,
USART_RX_BUF[199]的值为A,为最后一个字节。
执行结束USART_RX_STA++;语句时,
USART_RX_STA的值为200。
此时进行判断,if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;即  :  if(200>199)USART_RX_STA=0;
判断结果为接收数据错误。但是此时接收数据没错啊?
判断条件不是应该为  :  if(USART_RX_STA>(USART_REC_LEN))  吗?




如果是我理解错了,请指正,谢谢



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
正点原子
1楼-- · 2019-08-14 06:58
从0开始,0~199,就是200个数据。  0~200就是201。  面壁思过吧
肩山巨鬼
2楼-- · 2019-08-14 08:24
 精彩回答 2  元偷偷看……

一周热门 更多>