初级会员

- 积分
- 78
- 金钱
- 78
- 注册时间
- 2015-3-24
- 在线时间
- 4 小时
|
关于F103开发板中USART接收数据处理的问题:
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;
LCD_ShowString(30,40,122,16,16,USART_RX_BUF); // 显示接收到的数据
}
想在if语句里面对接收到的数据做判断和处理,想将USART_RX_BUF中的字符型数字变为整形,所以利用如下函数:
temp2=1000*(USART_RX_BUF[0]-'0')+100*(USART_RX_BUF[1]-'0')+10*(USART_RX_BUF[2]-'0')+1*(USART_RX_BUF[3]-'0');
已知收到的数据为4位,但用LCD显示temp2,有的时候是正确的,如1738。有的时候确是错误的152445?
想请问下是因为每次读数之后没把USART_RX_BUF清空么?
应该怎么处理才能很好的判断我接收到的数据是某个数(比如1)?
|
|