嵌入式开发者社区

标题: 例程点不亮LED0,但是LED0是好的. [打印本页]

作者: cl17726    时间: 2017-5-27 09:06
标题: 例程点不亮LED0,但是LED0是好的.
本帖最后由 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亮.

[attach]2377[/attach]

是哪里不对呢?我通过Linux下点亮表明LED是正确的.另外如GPIO_toggle这些的说明手册是在哪里的?这个函数名很好理解,但是如果有其他函数而我又不知道呢?
跟踪寄存器发现GRP( CTRL_MODULE_CORE ).GRP( [600 ... 699] ).REG( CTRL_CORE_PAD_VIN1A_D15 )没有改变MUXMODE.但是不知道怎么做才是正确,直接给地址写数据当然可以,但是可读性不好啊.



作者: human    时间: 2017-5-27 14:26

你现在用的是哪个板子?要根据实际控制的IO去修改控制。
[attach]2380[/attach]

作者: human    时间: 2017-5-27 14:28
[attach]2381[/attach]
作者: cl17726    时间: 2017-5-29 14:35
human 发表于 2017-5-27 14:28

我确实给了地址,是EasyEVM,但是只有其中一个寄存器没有改变,其他都改变了,包括OUTPUT所在的寄存器,另外CCS的步入总是进入到OS的函数里面,就不能在函数里面步入?
作者: riguangdeng    时间: 2017-12-13 13:28
您好,我想问一下您的这个问题解决了吗?我现在也遇到了同样的问题。




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4