STM32F103的串口通信如何给接收到的数据(整数)+1返回给电脑?

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
//尝试过多种返回方式
void USART1_IRQHandler(void)
{
    
    if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)        //接收中断
    {
        res=USART_ReceiveData(USART1);
        while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET);
        //res=GetKey();
        //USART_SendData(USART1,res+1);
        printf("%u", res);
    }
}


u8 RxCounter = 0;//定义计数值
u8    RxBuffer1[10];//定义缓冲区为10
 
void USART1_IRQHandler(void)
{
  if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)//串口接收中断
  {
    USART_ClearITPendingBit(USART1, USART_IT_RXNE);//清除标志位
    RxBuffer1[RxCounter++] = USART_ReceiveData(USART1);
        if(RxCounter>6)//定义接收的字节个数
        {
            RxCounter=0;
        }
        printf("%u", RxBuffer1[RxCounter]);
    }    
}

运行结果及报错内容

串口返回的是一堆混乱的数值。

我的解答思路和尝试过的方法

改变不同的数据类型。

我想要达到的结果

能正确返回值+1。

上位机发送的报文格式有没有?根据格式进行合成数然后加一

感觉你这个是多个原因造成的,你发送的1=49,返回值包含4个字符49=你发送的1,回车符=13,换行=10,另外00应该是你的null字符,应该和你的缓冲区格式有关系,十六进制或者字符,你先转换看看。另外就是你发送完成的处理是不是也有问题。一点一点查吧。