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**** 2044370 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:

Fullscreen
1
2
3
4
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);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

Fullscreen
1
2
3
4
5
6
7
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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

谢谢。此致、

八木市

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

    您好、Tyagi、

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

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

    尊敬的 Amir:

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

    Fullscreen
    1
    C:\ti\c2000\C2000Ware_4_00_00_00\device_support\f28004x\examples\sci\sci_ex1_echoback
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    Fullscreen
    1
    2
    GPIO_setPadConfig()
    GPIO_setPinConfig()
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    或  

    正在使用 GpioCtrlRegs。

    谢谢。此致、

    八木市

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

    您好、Tyagi、

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

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

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

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

    Amir、您好!

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

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    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
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    谢谢。此

    致、 八木市