问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
//尝试过多种返回方式
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。