开 发 板:FRDM MKL02Z4
模 块:GPIO模块
实际例程:通过按键,控制LED,按键按下LED亮,按键松开LED灭void gpio_int(void)
{
SIM_SCGC5 |=(1UL << 9); //使能PORTA模块的时钟
PORTA_PCR12 |=0x2u; //PORTA的Pin12上下拉使能
PORTA_PCR12 |=0x1u; //PORTA的Pin12配置为上拉
PORTA_PCR12 |=(1UL << 8); //PORTA的Pin12配置为GPIO模式
GPIOA_PDDR &= ~(1UL << 12); //GPIOA的Pin12配置为输入
SIM_SCGC5 |=(1UL << 10); //使能PORTB模块的时钟
PORTB_PCR11 |=(1UL << 8); //PORTB的Pin11配置为GPIO模式
GPIOB_PDDR |= (1UL << 11); //GPIOB的Pin11配置为输出模式
}
int main(void)
{
gpio_int();
while(1)
{
if(((GPIOA_PDIR >> 12) & 0x01)==0) //检测GPIOA的Pin12的输入数据寄存器的12位是否为低电平
GPIOB_PCOR |= (1UL << 11); //GPIOB的输出数据寄存器的位11清零
else
GPIOB_PSOR |= (1UL << 11);
}
}
关于GPIO模块的学习,一直停留在普通的输出和输入,对于嵌入式系统,中断是很重要的部分之一,下一步学习GPIO模式的中断学习,因资源有限可能学习比较慢,那就加油吧。
只因选择,所以热爱
只因有痛,所以珍惜
只因很笨,所以学习 -----不点记