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:启用外围设备的要求

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1085225/tm4c1294ncpdt-requirements-for-enabling-peripherals

部件号:TM4C1294NCPDT

我注意到在一些示例代码中,似乎有一些对 SystlPeripheralEnable()的不必要调用。  例如:

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);

是否需要同时调用两者?

我在评论第一行时似乎有好坏参半的结果。  UART0启用线路是否捕获 UART0工作所需的一切,或者是否需要调用 GPIOA,因为 UART0使用这些引脚?

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

    你好,Vince,

    这两个呼叫都是必需的。

    该设备的系统控制(sysctl)处理每个外围设备的初始系统范围配置,最重要的是包括对它们的路由时钟。 UART 和 GPIO 外设完全独立,并且有一个不同的时钟路径,需要启用每个 UART 实例和每个 GPIO 端口。 启用 UART0外围设备仅将计时路由到 UART0,而不会影响 GPIO。

    此外, 大多数 UART (和其他外设) 端口使用多个 GPIO 进行了互插,因此,TiaWare 驱动程序无法知道需要由应用程序启用哪些引脚并在软件中实现自动化-用户必须明确使用哪些引脚,例如,UART0 TX/RX 仅在特定 I/O 上使用 总的来说很少见。

    此致,

    拉尔夫·雅各比