请大神移步,串口通信,我用串口调试助手发送数字1到stm32,然后乘以2,之后返回的是字母b

2019-07-21 02:58发布

[mw_shl_code=c,true]int main(void) { u16 led0pwmval=1000; u8 a; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//?è????????????????·?×é2 delay_init(168); //?????????±???? KEY_Init(); uart_init(115200);//???????®???¨??????115200 TIM5_PWM_Init(20000-1,84-1);//84M/84=1Mhz??????????,??×°????500???ù??PWM?????? 1M/500=2Khz. 50HZ TIM_SetCompare1(TIM5,led0pwmval); //????±???????????????±? while(1) { if(USART_RX_STA&0x8000) {       a=USART_RX_BUF[0]; while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); printf(" "); USART_SendData(USART1, a); while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); printf(" "); a=a*2; //为什么乘以2之后返回的是b呢 USART_SendData(USART1, a); while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); TIM_SetCompare1(TIM5,led0pwmval); printf(" "); USART_RX_STA=0; } } }[/mw_shl_code] 用串口调试助手,发送数字1 ,在单片机里取出后,乘以2,返回串口助手的是字母b,,我查阅了ASCII 对应的值,发现1对应的是ASCII是49 ,乘以2是98 ,98正好对应字母b,,请问我如何才能使单片机通过串口接收到的1、2、3是真正的整形1、2、3,请指点迷津。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。