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.
大家好!
我正在尝试使用以下示例代码片段将 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
我们在板上进行了测试、因此它可以正常工作。
谢谢。此
致、 八木市