L1306——按键以及DL_GPIO_readPins(GPIO_Regs* gpio, uint32_t pins)函数用法

主函数

#include "ti_msp_dl_config.h"

volatile unsigned int delay_times = 0;

//搭配滴答定时器实现的精确ms延时
void delay_ms(unsigned int ms) 
{
        delay_times = ms;
        while( delay_times != 0 );
}        

int main(void)
{
    
    SYSCFG_DL_init();
    
    while (1) 
    {                        
        //如果读取到的引脚值大于0,说明PA18引脚为高电平
                if( DL_GPIO_readPins(KEY_PORT, KEY_PIN_18_PIN) > 0 )
                {
                        DL_GPIO_setPins(LED1_PORT,LED1_PIN_14_PIN);  //LED控制输出高电平
                }
                else//如果PA18引脚为低电平
                {
                        DL_GPIO_clearPins(LED1_PORT,LED1_PIN_14_PIN);//LED控制输出低电平
                }                        
    }
}

void SysTick_Handler(void)
{
        if( delay_times != 0 )
        {
                delay_times--;
        }
}

使用函数 uint32_t DL_GPIO_readPins(GPIO_Regs* gpio, uint32_t pins)可以读取引脚的状态。

需要输入两个参数:

gpio:读取的GPIO端口。L1306芯片只有GPIOA端口,这里选择GPIOA

pins:读取的引脚号。根据我们sysconfig配置的引脚名称,这里写入的是KEY_PIN_18_PIN

它会返回的参数:

类型为uint32_t ,返回的是对应引脚的状态位。比如以PA18为例。当PA18引脚检测到低电平时,返回的值是0;当PA18引脚检测到高电平时,对应的32位寄存器中PA18的将会被置1,返回的值为0x40000,换为2进制就是:100 0000 0000 0000 0000

从代码一直查找到用户手册的寄存器,可以知道,二进制的 100 0000 0000 0000 0000 对应的就是PA18引脚。数据手册中,是从0开始往左边算,二进制的100对应的就是PA2号引脚为高电平,10000对应的就是PA4引脚为高电平。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值