|
本帖最后由 cl17726 于 2017-5-27 11:12 编辑
我使用GPIO_LedBlink_evmAM572x_armTestProject,然后修改GPIO_evmAM572x_board.c的gpioPinConfigs为如下.
#define GPIO_USER0_LED_PIN_NUM (0x13) /* 创龙默认此处并不是P3_19的参数. */
#define GPIO_USER0_LED_PORT_NUM (0x03)
#define GPIO_USER1_LED_PIN_NUM (0x14)
#define GPIO_USER1_LED_PORT_NUM (0x03)
/* GPIO Driver board specific pin configuration structure */
GPIO_PinConfig gpioPinConfigs[] = {
/* Input pin with interrupt enabled : AM57X_IDK_GRN_LED */
GPIO_DEVICE_CONFIG(GPIO_USER0_LED_PORT_NUM, GPIO_USER0_LED_PIN_NUM) |
GPIO_CFG_OUTPUT, /* 默认这个也不是OUTPUT */
/* Output pin : AM57X_IDK_YEL_LED */
GPIO_DEVICE_CONFIG(GPIO_USER1_LED_PORT_NUM, GPIO_USER1_LED_PIN_NUM) |
GPIO_CFG_OUTPUT,
};
就是P3_19,P3_20都作为输出引脚.并把函数简化成.
void gpio_test(UArg arg0, UArg arg1)
{
/* GPIO initialization */
GPIO_init();
AppDelay(DELAY_VALUE);
GPIO_log("\n GPIO Led Blink Application \n");
while(1)
{
GPIO_toggle(USER_LED0);
GPIO_toggle(USER_LED1);
AppDelay(DELAY_VALUE);
}
}
运行后.
GRP( GPIO3 ).REG( GPIO_OE ) 为 0xFFE7FFFF 就是BIT19,BIT20都已经为0,已经是输出状态.
GRP( GPIO3 ).REG( GPIO_DATAOUT ) 为 0x00180000 就是BIT19,BIT20都已经为1 ,输出高电平,但是只有LED2亮.
是哪里不对呢?我通过Linux下点亮表明LED是正确的.另外如GPIO_toggle这些的说明手册是在哪里的?这个函数名很好理解,但是如果有其他函数而我又不知道呢?
跟踪寄存器发现GRP( CTRL_MODULE_CORE ).GRP( [600 ... 699] ).REG( CTRL_CORE_PAD_VIN1A_D15 )没有改变MUXMODE.但是不知道怎么做才是正确,直接给地址写数据当然可以,但是可读性不好啊.
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|