您好!
我的串行通信有问题。
在串行终端(Termite)中、波特率设置为14400波特、尽管在代码中
UARTConfigSetExpClk ()函数设置为9600波特、
但在 Termite 中数据看起来不错、但当将数据传递到 LabVIEW 时、 我只会看到与图不对应的字符、无论
波特率如何。
谢谢!
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.
您好!
我的串行通信有问题。
在串行终端(Termite)中、波特率设置为14400波特、尽管在代码中
UARTConfigSetExpClk ()函数设置为9600波特、
但在 Termite 中数据看起来不错、但当将数据传递到 LabVIEW 时、 我只会看到与图不对应的字符、无论
波特率如何。
谢谢!
确保将正确的系统时钟值传递给函数 UARTConfigSetExpClk()。 看起来您以120MHz 运行、但通过了80MHz。 确保您不使用函数 SysCtlClockGet ()。 该功能仅适用于 TM4C123x 器件。
g_ui32SysClock = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_240), 120000000);
...
UARTConfigSetExpClk(UART0_BASE, g_ui32SysClock, 9600,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
你好!
感谢您的回复。 我的配置如下:
G_ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_16MHz | SYSCTL_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、10000000);
UARTConfigSetExpClk (UART1_base、g_uART329600、 (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE);
我像示例一样设置代码、但它不起作用、它在"sysctl_CFG_VCO_240"行标记了一个错误、因此我使用了 SYSCTL_CFG_VCO_480 "。
您可能正在使用较旧版本的 TivaWare。 "SYSCTL_CFG_VCO_240"是在版本2.2.0.295中引入的。 使用"sysctl_CFG_VCO_480"将生成相同的结果。
勘误文档中记录了 一个问题、即 SYSCTL_22。 从 TivaWare 2.1.3版开始、函数 SysCtlClockFreqSe ()使用240MHz 而非480MHz 的 VCO 频率来避免这个问题、即使 选择了 SYSCTL_CFG_VCO_480也是如此。 这导致了一些困惑。 从 TivaWave 版本2.2.0.295开始、 添加了 SYSCTL_CFG_VCO_240定义。 现在使用 SYSCTL_CFG_VCO_240或 SYSCTL_CFG_VCO_480将导致 VCO 频率为240MHz、并避免出现 SYSCTL_22问题。
你好!
非常感谢您的评论!
我尝试了该程序、大部分时间它显示了正确的结果(一个字符串 hello world)、
有时、它会将数据显示为波特率不正确。 的名称
项目是 GPIO2。
e2e.ti.com/.../PROYECTO.rar