stm32串口接收十六进制数,并放进数组遇到的问题

stm32串口接收十六进制数,并放进数组遇到的问题

问题描述:

这个问腿以前没遇到过,不知道是什么原因,问题如下:

void USART6_IRQHandler(void)
{
  u8 rec_data;
  
if(USART_GetFlagStatus(USART6,USART_FLAG_TC)!=RESET)
{
  rec_data=USART_ReceiveData(USART6);
  if(uart6_byte_count<100)
  {
    receive_str6[uart6_byte_count]=rec_data;
    uart6_byte_count++;
  }
}
  uart6_byte_count=0;
  printf("%s\n",receive_str6);
}

如上程序打印出来都是data 0x0A data 0x0A data 0x0A data 0x0A 这样的格式,它本来的数据是不带结束符的,想问一下是什么原因造成的,有什么解决办法么
感谢!

第15行print中的那个\n换行符就是 0x0a


原:
  uart6_byte_count=0;
  printf("%s\n",receive_str6);

改:
for(u8 i = 0; i < uart6_byte_count; i++)
{
  printf("0x%02x",receive_str6[i]);
}
if (uart6_byte_count != 0)
{
  uart6_byte_count =0;
  printf("\r\n");
}