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 方向和值(在 C28x ISR/后台和 CLA 任务/后台任务8中)。
您能帮助确认注意事项吗?
1.从 GPIO 输入到输出
在 "TRM 的10.3配置概述"中、包含了第4步: 选择任何通用 I/O 引脚的方向
"默认情况下、所有 GPIO 引脚均为输入。 在将引脚更改为输出之前、通过将要驱动的值写入 GPySET、GPyCLEAR 或 GPyDAT 寄存器来加载输出锁定。 一旦锁存器被载入、写入 GPyDIR 以改变引脚方向。'
用户必须在 GPIO 初始化和运行时遵循该序列。
例如、
GPIO_writePin (myGPIO0、 1);
GPIO_setDirectionMode (myGPIO0、 GPIO_DIR_MODE_OUT);
是这样吗?
2.从 GPIO 输出到输入,
用户可以直接改变方向吗?
是否有任何需要考虑的因素、比如这里的顺序?
GPIO_setDirectionMode (myGPIO0、 GPIO_DIR_MODE_IN);
韦恩、您好!
感谢您的提问。
用户必须在 GPIO 初始化和运行时遵循该序列。
例如、
GPIO_writePin (myGPIO0、 1);
GPIO_setDirectionMode (myGPIO0、 GPIO_DIR_MODE_OUT);
是这样吗?
[/报价]这是正确的、但我建议您在需要时也设置焊盘配置(如果您需要对其在输入模式下设置的配置进行更改)。 请参阅 GPIO_ex1_setup.c 以了解如何更改 PadConfig:
Fullscreen1234567//// Enable a GPIO output on GPIO6, set it high//GPIO_setPadConfig(6, GPIO_PIN_TYPE_PULLUP); // Enable pullup on GPIO6GPIO_writePin(6, 1); // Load output latchGPIO_setPinConfig(GPIO_6_GPIO6); // GPIO6 = GPIO6GPIO_setDirectionMode(6, GPIO_DIR_MODE_OUT); // GPIO6 = outputXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX// // Enable a GPIO output on GPIO6, set it high // GPIO_setPadConfig(6, GPIO_PIN_TYPE_PULLUP); // Enable pullup on GPIO6 GPIO_writePin(6, 1); // Load output latch GPIO_setPinConfig(GPIO_6_GPIO6); // GPIO6 = GPIO6 GPIO_setDirectionMode(6, GPIO_DIR_MODE_OUT); // GPIO6 = output[/quote]2.从 GPIO 输出到输入,
用户可以直接改变方向吗?
是否有任何需要考虑的因素、比如这里的顺序?
[/报价]我建议您遵循 GPIO_ex1_setup.c 序列、将上拉电阻修改为您希望引脚呈现的任何内容、如果已设置引脚、则无需设置 PinConfig:
Fullscreen12345// Make GPIO34 an input on GPIO34//GPIO_setPadConfig(34, GPIO_PIN_TYPE_PULLUP); // Enable pullup on GPIO34GPIO_setPinConfig(GPIO_34_GPIO34); // GPIO34 = GPIO34GPIO_setDirectionMode(34, GPIO_DIR_MODE_IN); // GPIO34 = inputXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX// Make GPIO34 an input on GPIO34 // GPIO_setPadConfig(34, GPIO_PIN_TYPE_PULLUP); // Enable pullup on GPIO34 GPIO_setPinConfig(GPIO_34_GPIO34); // GPIO34 = GPIO34 GPIO_setDirectionMode(34, GPIO_DIR_MODE_IN); // GPIO34 = input如果您不想更改 PadConfig、那么可以更改方向、就是这样。
此致、
Vince
尊敬的 Vince:
感谢您的信息。
最初、用户希望在运行时使用 CLA 来更改 GPIO 方向、但我们只是意识到只有 CPU 可以访问 GPIO_CTRL_REGS 寄存器。
CLA 无法访问它。