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");
}