串口的数据传送

2019-07-21 07:57发布

求一个在串口输入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   这个串口都有问题


哪位做过的可以帮助啊一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。