打印

MSPM0L1306 DL_GPIO_initDigitalOutput()函数的解析

[复制链接]
631|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xyz549040622|  楼主 | 2023-8-31 15:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xyz549040622 于 2023-8-31 16:34 编辑

syscfg生成的IO初始化函数中,生成的第一个就是这个函数,这个函数有什么用呢?
SYSCONFIG_WEAK void SYSCFG_DL_GPIO_init(void)
{

    DL_GPIO_initDigitalOutput(GPIO_LED_USER_LED1_IOMUX);

    DL_GPIO_clearPins(GPIO_LED_PORT, GPIO_LED_USER_LED1_PIN);
    DL_GPIO_enableOutput(GPIO_LED_PORT, GPIO_LED_USER_LED1_PIN);

}
然我们看看他的底层
/**
*  [url=home.php?mod=space&uid=247401]@brief[/url]      Configures a pin as a basic GPIO output
*
*  @param[in]  pincmIndex  The PINCM register index that maps to the target
*                          GPIO pin.
*/
__STATIC_INLINE void DL_GPIO_initDigitalOutput(uint32_t pincmIndex)
{
    /* GPIO functionality is always a pin function of 0x00000001 */
    IOMUX->SECCFG.PINCM[pincmIndex] =
        (IOMUX_PINCM_PC_CONNECTED | ((uint32_t) 0x00000001));
}
他的作用是配置IO引脚的输出功能。原来,器件上的每个数字 IO 在 IOMUX 外设寄存器空间中都有一个专用的 32 位 PINCM 寄存器,用于配置相应 IO 的数字功能。那么,我们每使用一个IO,就要对应一个DL_GPIO_initDigitalOutput()函数。如果有用到三个IO,就必须对应三个DL_GPIO_initDigitalOutput()函数。
注意看这个函数,他只把GPIO配置为输出功能,这点是最重要的,如果想把GPIO配置为其他功能,就需要用到其他函数的配合了,这是由syscfg自动生成的,syscfg的魅力在于,我们不需要研究这些函数,直接点击配置生成即可。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2782

主题

19266

帖子

104

粉丝