奏奏奏 发表于 2019-9-21 19:41:04

串口设置为偶校验无效?

我先简单把问题描述:
有个外接设备的通讯参数要求“偶校验”,其他参数设置:
波特率:9600
数据位:8位
停止位:1位
流控制:无

然后我配置后写代码一开机就发送:0x11 0x22 0x33 0x44 0x55
当我用串口调试助手配置好后:显示接收到的数据为:收←◆11 A4 22 55
但是PC上串口调试助手的校验设置修改为“无”的时候,显示正确:收←◆11 22 33 44 55

我自己写的代码只有2行:

uint8_t send_data={0x11,0x22,0x33,0x44,0x55};      //      //      自己写第1行代码

      HAL_UART_Transmit(&huart2,send_data,5,0xFFFF);      //      自己写第2行代码

然后我将整个工程代码打包到附件中。

补充一下其他条件:
STM32CubeMX 版本:5.3.0
keil 版本:5.24.2.0
串口调试助手版本: 5.13.1 软件名称是:SSCOM
我附件代码中MCU的型号是:STM32F042K6T6
另外验证过有同样问题的MCU型号是:STM32L476RGT6

mylovemcu 发表于 2019-9-23 07:55:18

STM32需要加奇偶校验时需要采用9位数据位的发送方式初始化配置一下就好了

奏奏奏 发表于 2019-9-23 09:06:18

mylovemcu 发表于 2019-9-23 07:55
STM32需要加奇偶校验时需要采用9位数据位的发送方式初始化配置一下就好了   ...
谢谢!我马上修改测试一下。确认这个方法可以解决我的问题。通过测试验证过了。:lol

发表于 2019-9-23 09:28:12

楼上说的对,如果需要奇偶效验时,需要使用9位模式。

奏奏奏 发表于 2019-9-23 09:33:14

安 发表于 2019-9-23 09:28
楼上说的对,如果需要奇偶效验时,需要使用9位模式。
感谢版主的指导。:)
页: [1]
查看完整版本: 串口设置为偶校验无效?