高级会员

- 积分
- 580
- 金钱
- 580
- 注册时间
- 2015-1-12
- 在线时间
- 76 小时
|

楼主 |
发表于 2026-2-3 17:02:43
|
显示全部楼层
至于汉字为什么最大个数是31而不是32,和同类毛病的F413例程中#define USART_REC_LEN 200 //定义最大接收字节数 200。为什么是99个汉字而不是100个汉字,这是因为USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;//USART_RX_STA数值没有包含回车换行。收到的回车换行\r\n没被计算到数组的长度里面,也就是接收的数组元素中不含有\r\n 2021.12.4
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收
先得到数组元素的下标,然后USART_RX_STA会+1,当取得199下标的时候,也就是数组的第200个元素,USART_RX_STA+1变为了200,if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//,200>(200-1)接收数据错误,重新开始接收 |
|