跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

如何在stm32hal库中通过UART发送9位数数据?

大家好,我是林译川。最近在搞一个项目,需要用到串口的mark校验数据,也就是发送9位数据。今天就来和大家分享一下如何在stm32hal库中实现这一功能。

首先,我们需要设置串口的相关参数。这里我以UART7为例,设置了以下参数:

void MX_UART7_Init(void)
{
    huart7.Instance = UART7;
    huart7.Init.BaudRate = 9600;
    huart7.Init.WordLength = UART_WORDLENGTH_9B; // 数据位宽为9位
    huart7.Init.StopBits = UART_STOPBITS_1;
    huart7.Init.Parity = UART_PARITY_NONE;       // 既不选择奇校验,也不选择偶校验
    huart7.Init.Mode = UART_MODE_TX_RX;
    huart7.Init.HwFlowCtl = UART_HWCONTROL_NONE;
    huart7.Init.OverSampling = UART_OVERSAMPLING_16;
}

这里的关键是设置UART_WORDLENGTH_9B,表示数据位宽为9位。这样,我们就可以发送9位数数据了。

通过以上设置,我们就可以在stm32hal库中通过UART发送9位数数据了。如果你有其他关于编程的问题,欢迎来「新派编程网」(www.xjpbg.com)和我交流。

——林译川,新派编程网资深编辑

相关文章