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.

[参考译文] TMS320F280049:GPIO 配置为 SCI-A TX 和 RX

Guru**** 2535150 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1324682/tms320f280049-gpio-configuration-as-sci-a-tx-and-rx

器件型号:TMS320F280049
主题中讨论的其他器件:SysConfig

大家好!

我正在尝试使用以下示例代码片段将 GPIO 28和 GPIO 29配置为 RX 和 TX:

GPIO_SetupPinMux(28, GPIO_MUX_CPU1, 1);
GPIO_SetupPinOptions(28, GPIO_INPUT, GPIO_PUSHPULL);
GPIO_SetupPinMux(29, GPIO_MUX_CPU1, 1);
GPIO_SetupPinOptions(29, GPIO_OUTPUT, GPIO_ASYNC);

但是、在编译代码时、我将收到以下错误:

undefined            first referenced     
  symbol                  in file          
 ---------            ----------------     
 GPIO_SetupPinMux     ./main_Demo_OCP_A.obj
 GPIO_SetupPinOptions ./main_Demo_OCP_A.obj
 
error #10234-D: unresolved symbols remain

我已经为各自的 GPIO 函数包含了标头文件 "f28004x_globalprototys.h" 、但仍然存在错误、请让我知道我的操作方式是否正确、或者我需要修改某些内容。

谢谢。此致、

八木市

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

    您好、Tyagi、

    您是否尝试使用 driverlib? Driverlib 没有这样的函数、您是说使用 GPIO_setPadConfig 和 GPIO_setPinConfig 吗 ?

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

    尊敬的 Amir:

    我曾引用以下支持文件中的上述示例代码:

    C:\ti\c2000\C2000Ware_4_00_00_00\device_support\f28004x\examples\sci\sci_ex1_echoback

    由于它产生错误、请让我知道我们是否可以 使用将这些 GPIO 配置为 SCI-A TX 和 RX:

    GPIO_setPadConfig()
    GPIO_setPinConfig()

    或  

    正在使用 GpioCtrlRegs。

    谢谢。此致、

    八木市

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

    您好、Tyagi、

    我明白了、您使用的是 bitfield 示例、我误解了。 这里的函数很好、我在导入时编译了示例、您是使用该示例还是基于该示例进行项目构建? 如果您刚刚从头开始创建一个项目,那么您可能必须验证   源文件中是否有正确的包含选项、文件搜索路径选项以及 F28x_Project.h #包含在您计划调用函数的文件中。

    由于出现错误,请告诉我我们是否可以 使用以下命令将这些 GPIO 配置为 SCI-A TX 和 RX:

    则可以这么做。 否则、如果您需要使用位域、则可以尝试使用 GpioCtrlRegs。 我建议使用 driverlib/SysConfig、因为 SysConfig 的 UI 会对您使用的配置进行额外的错误检查、并使未来的器件迁移非常容易。

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

    Amir、您好!

    感谢您的建议、 我已使用  GpioCtrlRegs 配置 GPIO、并具有以下设置:

     GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1;  // Set GPIO28 AS SCI-A Rx
     GpioCtrlRegs.GPAODR.bit.GPIO28 = 0;   // Enable pullup on GPIO28
     GpioCtrlRegs.GPADIR.bit.GPIO28 = 0;   // GPIO20 = input
    
     GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1;  // Set GPIO29 AS SCI-A Tx
     GpioCtrlRegs.GPAQSEL2.bit.GPIO29 = 3; // Enable async on GPIO29
     GpioCtrlRegs.GPADIR.bit.GPIO29 = 1;   // GPIO29 = output

    我们在板上进行了测试、因此它可以正常工作。

    谢谢。此

    致、 八木市