工具/软件:Code Composer Studio
你好
我想控制 AM65x EVM IDK 上的 GPIO 输出。 我调查 RTOS 模板应用程序以了解 GPIO API。
我对 GPIO API 有一些伺服问题。
GPIO_socGetInitCfg()和 GPIO_socSetInitCfg()的用法是什么? 如果我们在调用 GPIO_write()等函数之前不调用它、会发生什么情况?
//在 main.c 中 void Board_initGPIO (void) { GPIO_V0_HwAttrs GPIO_cfg; /*获取默认的 SPI 初始化配置*/ GPIO_socGetInitCfg (GPIO_LED0_PORT_NUM、&GPIO_cfg); /*如有必要,修改默认 GPIO 配置*/ GPIO_configIntRouter (GPIO_LED0_PORT_NUM、GPIO_LED0_PIN_NUM、0、&GPIO_cfg); /*设置默认的 GPIO 初始化配置*/ GPIO_socSetInitCfg (GPIO_LED0_PORT_NUM、&GPIO_cfg); }
2、大多数 GPIO API 的参数只包含索引信息、不包含域信息。 这些功能如何帮助我们设置特定的 GPIO 引脚。
此外、在 app.c 中、它将 枚举器- USER_LED0传递给 GPIO_TOGGLE ()。 为什么它不传递目标 LED 的 GPIO 索引?
//在 GPIO_board.h
中、typedef 枚举 GPIO_LED{
USER_LED0 = 0、
USER_LED1
}GPIO_LED;
//在 app.h
中#define TEST_LED_GPIO_INDEX USER_LED0
//在 app.c
中 void GPIO_TOGGLE_LED_TASK (UARG arg0、UARG arg1)
{
appPrint ("\n GPIO_toggle_led 任务已启动");
while (1){
/*切换连接到 LED 的测试 GPIO */
GPIO_TOGGLE (TEST_LED_GPIO_INDEX);
/*设置脉冲周期的延迟*/
Task_sleep (LED_BLINK 延迟值);
/*如果触发了 End Test (结束测试),则退出
*注意:可通过 UART 通过命令触发结束测试
*
IF (g_endTestTrigged)
中断;
};
appPrint ("\n GPIO_TOGGLE_LED 任务已结束");
Task_exit();
}
模板中有一些宏、如"GPIO_LED0_PORT_NUM"。 "端口"一词的定义是什么。
我在 AM65x 技术参考中找不到(或者我错过了)它。 "端口"是否与"组"相关?
此致。
ChingWei