• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

关于STM32与串口通讯问题

某某偶178 2019-03-24 浏览量:965

程序如下,实际是把数据发送给labview上位机,就拿普通的串口通讯软件试下,但是接收到的数据全是乱码,如果用ascii却正常,比如发送tbuf[0]=0x31tbuf[1]=0x32串口软件显示正常,换成普通的​十六禁止却不行。比如下边发送0xfa显示的是一个问号。。。请问这是什么情况?

void mpu6050_labview_send_data(short gyrox)

{
u16 tbuf[2];
u8 i;
// tbuf[0]=(gyrox>>8)&0XFF; //将高八位值给·tbuf[0]
// tbuf[1]=gyrox&0XFF;//将低八位值给tbuf[1]
tbuf[0]=0xfa;
tbuf[1]=0xaa;
for(i=0;i<2;i++)
{
usart1_send_char(tbuf[i]); //没问题
}

}
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个问号是因为上位机串口通信的软件无法识别0xfa是个怎样的字符,像这种情况,建议你使用STM32上面的串口打印重映射功能,将fputc函数映射到串口发送函数上面,然后直接调用printf %02x打印
    • 发布于 2019-03-24
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 0xfa和0xaa都不属于ascii码,ascii码的字符是从0x20到0x7e,如果包含控制字也就是从0到0x7f,你的fa和aa肯定不能正常显示
    • 发布于2019-03-24
    • 举报
    • 评论 0
    • 1
    • 0

  • 你的串口助手的显示方式不一样的,修改成16进制显示,看看发与收的数据是不是一样的,你的这处显示方式是只能显示正常的ascii码的
    • 发布于2019-03-24
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

关于STM32与串口通讯问题