STM32的UART出现乱码的原因

在一个秋高气爽的周末了,由于闲着无事,便研究了一下STM32L010F4P6芯片的UART通讯,于是乎马上开搞编写代码:

    UART_HandleTypeDef UartHandle;
    UartHandle.Instance = USARTx;
	UartHandle.Init.BaudRate = 9600;
	UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
	UartHandle.Init.StopBits = UART_STOPBITS_1;
	UartHandle.Init.Parity = UART_PARITY_ODD;
	UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
	UartHandle.Init.Mode = UART_MODE_TX_RX;
	if (HAL_UART_Init(&UartHandle) != HAL_OK) {
		Error_Handler();
	}

我的波特率定义是:9600

字长配置是:UART_WORDLENGTH_8B

停止位是:1位

校验是:ODD

这样配置好之后我便在电脑端的串口调试助手软件中的数据位也是选择8位,但无奈出现乱码现象;于是乎百思不得其解。我以为是我代码配置有问题便一直检查代码,但是无论我怎么检查我都没有发现哪里不妥呀,在这个秋高气爽的周末里我也就没有太多精力去追根问底便去呼呼大睡了去了。一觉美梦醒来已是傍晚时分,这是头脑顿时一想:难道校验位也是属于WordLength里的一位?于是乎便去查阅文档发现:Word Length = 8 Bits (7 data bit + 1 parity bit),果然是这样。

最终乱码的原因真相大白:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值