[问题讨论] 发现GD32F350的串口接收数据的字节最高位无效问题

物联创客   2018-9-29 13:39 楼主
发现GD32F350的串口接收数据的字节最高位无效问题, 就是让串口接收一个字节,发现串口打印出这个接收到的数据现象如下: 给单片机串口发送:0x01 打印输出:0x01, 给单片机发送:0x80 打印输出:0x00; 给单片机发送: 0x81 打印输出:0x01; 给单片机发送: 0x91 打印输出: 0x11; 给单片机发送: 0xa1 打印输出: 0x21; 给单片机发送: 0xb1 打印输出: 0x31; 就是只要最高位是1,那么接收也会当做没有这种问题 大家遇到过这种问题吗? 令人费解 本帖最后由 物联创客 于 2018-9-29 13:44 编辑

回复评论 (2)

应该是编程的问题,你可以先写一个最简单的程序,收到数据后立刻通过串口回发给上位机,用串口调试助手软件来测试,16进制模式,一次只发一个字节。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
点赞  2018-9-29 15:32
引用: chunyang 发表于 2018-9-29 15:32
应该是编程的问题,你可以先写一个最简单的程序,收到数据后立刻通过串口回发给上位机,用串口调试助手软件 ...

是的,  发现 串口接收编程有问题
m6312_buf[m6312_cnt] = (usart_data_receive(EVAL_COM2) & 0x7f);

这个ox7f应该改为0xff,怪不得最高位都无效,   因为移植别人程序时没有仔细看!
点赞  2018-9-29 17:32
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复