发现GD32F350的串口接收数据的字节最高位无效问题, 就是让串口接收一个字节,发现串口打印出这个接收到的数据现象如下:
给单片机串口发送:0x01
打印输出:0x01,
给单片机发送:0x80
打印输出:0x00;
给单片机发送: 0x81
打印输出:0x01;
给单片机发送: 0x91
打印输出: 0x11;
给单片机发送: 0xa1
打印输出: 0x21;
给单片机发送: 0xb1
打印输出: 0x31;
就是只要最高位是1,那么接收也会当做没有这种问题
大家遇到过这种问题吗? 令人费解
本帖最后由 物联创客 于 2018-9-29 13:44 编辑
应该是编程的问题,你可以先写一个最简单的程序,收到数据后立刻通过串口回发给上位机,用串口调试助手软件来测试,16进制模式,一次只发一个字节。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
是的, 发现 串口接收编程有问题
m6312_buf[m6312_cnt] = (usart_data_receive(EVAL_COM2) & 0x7f);
这个ox7f应该改为0xff,怪不得最高位都无效, 因为移植别人程序时没有仔细看!