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.
我在尝试使用奇数奇偶校验初始化 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