求一个在串口输入0--999 然后返回对应数值的串口
每次处理好了个位 十位百位就不对
百位对了 别的位有不对
ps:下面的是复制一位大佬的
下面是我学习后正在编写的串口接收工程文件
//--------
//串口接收,有串口接收数据时自动调用接收中断函数 USART1_IRQHandler(void)
//--------
if(USART_RX_STA&0x8000) //判断接收到的数据是否被调走,为1调走,调走后才能进入if下面的语句中进行新的数据接收,否则会出现误码。
{
w=USART_RX_BUF[1]-48; //用于返回PC字符提示信息
h=USART_RX_BUF[2]-48; //用于返回PC字符提示信息 对照ascii码表,收到的数字为ascii码的对应1~9字符(对应十进制48~57),而不是十进制的1~9.
y=(USART_RX_BUF[0]-48); //功能码 ascii码表中字符的0~9与十进制的0~9相差48,所以要把字符的0~9转换成10进制的0~9就减去48.
num=w+h+y; //
USART_RX_STA=0; //重新接收
}
无论加不加48 这个串口都有问题
哪位做过的可以帮助啊一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>