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.

[参考译文] TM4C1294NCPDT:baurate 和数据传输问题。

Guru**** 2614265 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/995334/tm4c1294ncpdt-problems-with-the-baurate-and-data-transmission

器件型号:TM4C1294NCPDT
您好!

我的串行通信有问题。
在串行终端(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 "。 




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="475151" URL"~/support/microcontrollers/other/f/other-microcontrollers-forum/995334/tm4c1294ncpdt-problems-with-the-baurate-and-data-transmission/3678311 #3678311"]我设置了类似示例的代码,但它不起作用,它标记了"sysctl_CFG_VCO_240"行上的错误,因此我使用了 SYSCTL_CFG_VCO_480 "。

    您可能正在使用较旧版本的 TivaWare。 "SYSCTL_CFG_VCO_240"是在版本2.2.0.295中引入的。 使用"sysctl_CFG_VCO_480"将生成相同的结果。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、我对最后一个部分的理解不是很好、如果我将函数设置为480、我会得到与我将其设置为240相同的响应? 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    勘误文档中记录了 一个问题、即 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问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好!
    
    我已经更新了 Tivaware 并修改了带有240的 SysCtlClockFreqSet ()的值、 
    但是波特率仍然有同样的问题、我无法在9600波特或的波特率下看到数据
    14400。现在我无法在 Termite 中看到数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请将您的项目导出到.zip 文件并将其发布。 不过,我在本周剩余时间的假期中,直到下周才能查看。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好!
    非常感谢您的评论! 
    我尝试了该程序、大部分时间它显示了正确的结果(一个字符串 hello world)、
    有时、它会将数据显示为波特率不正确。 的名称
    项目是 GPIO2。
    e2e.ti.com/.../PROYECTO.rar
    
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我很抱歉。 我没有可以运行代码的硬件。 我的硬件将 UART1TX 连接到 USB 上的 VBUS。  

    我没有看到频率设置或波特率设置有任何问题。 是否可以将接收数据的端口与器件启动期间的 RS232电平相混淆? 是否已尝试重置从 TM4C 接收消息的设备上的串行端口?

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

    你好!

    不、我没有尝试重新启动它。 请告诉我如何操作? 
    
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     我不使用 Termite、但您可能会尝试关闭并重新打开应用程序。 在 TeraTerm 的菜单上、选择"Control"->"Reset port"