This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C123GH6PM:向 UART1添加奇偶校验

Guru**** 2042920 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/814305/tm4c123gh6pm-adding-parity-to-uart1

器件型号:TM4C123GH6PM

我在尝试使用奇数奇偶校验初始化 UART 时遇到问题。  我最初使用的是以下命令、它不使用奇偶校验来配置 UART:

ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);

ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART1);

ROM_GPIOPinConfigure (GPIO_PB0_U1RX);
ROM_GPIOPinConfigure (GPIO_PB1_U1TX);
ROM_GPIOPinTypeUART (GPIO_PORTB_BASE、GPIO_PIN_0 | GPIO_PIN_1);

ROM_IntMasterEnable();

ROM_UARTClockSourceSet (UART1_base、UART_CLOCK _PIOSC);

ROM_IntEnable (INT_UART1);

UARTStdioConfig (1、19200、16000000);//基于16MHz 晶体的波特率19200

ROM_UARTIntEnable (UART1_BASE、UART_INT_RX); 

我尝试用替换 UARTStdioConfig 调用

UARTConfigSetExpClk (UART1_base、16000000、19200、UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_ODD); 

但是、在进行此更改后、我无法再建立通信。  我要与之通信的 PLC 配置也设置为19200波特、8个数据位、1个停止位、奇数奇偶校验等

使用 uartstdio 和 UART 函数之间是否存在差异?  我还缺少其他东西吗?

很抱歉、如果您对本主题有任何疑问。  我首先尝试搜索论坛、找不到任何具有相同问题的人。

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Justin、

    如果您使用 uartstdio.c 文件中的其他函数来打印 UART 数据、但不使用 UARTStdioConfig、则这些函数没有可运行的配置信息。

    由于 UARTStdioConfig 默认不支持更改奇偶校验、因此我建议通过执行以下操作来更改奇偶校验:

    1) 1)调用 UARTStdioConfig、以便为 uartstdio 函数提供正确的 UART 波特率、UART 基址等。

    2) 2) 立即调用 UARTConfigSetExpClk、然后设置正确的奇偶校验设置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    非常完美!  谢谢!

    Justin Repperger