开 发 板:FRDM MKL02Z4
模 块:GPIO模块
实际例程:利用PORTB的Pin11、Pin10、Pin7、Pin6实现定向依次点亮LED步 骤:第一步:PORTB时钟使能
第二步:PORTB中的管脚11/10/7/6开启普通GPIO模式
第三步:GPIOB控制器中的管脚11/10/7/6置位
第四步:
GPIOB控制器中管脚11/10/7/6开启输出模式代 码:
//利用PORTB的Pin11、Pin10、Pin7、Pin6实现定向依次点亮LED
void gpio_int(void)
{
SIM_SCGC5 |=(3UL << 10); //使能PORTB模块的时钟
PORTB_PCR11 |=(1UL << 8); //PORT的Pin11配置为GPIO模式
PORTB_PCR10 |=(1UL << 8); //PORT的Pin10配置为GPIO模式
PORTB_PCR7 |=(1UL << 8); //PORT的Pin7配置为GPIO模式
PORTB_PCR6 |=(1UL << 8); //PORT的Pin6配置为GPIO模式
GPIOB_PDDR |= 0xcc0; //GPIO模式下Pin11、Pin10、Pin7、Pin6配置为输出模式
GPIOB_PSOR |= 0xcc0; //GPIOB的输出数据寄存器的位11/10/7/6置1(LED全灭)
//GPIOB_PDOR = 0x00000cc0;
}
int main(void)
{
long int i;
gpio_int();
while(1)
{
for(i = 0;i < 6000000;i++)//延时
{};
GPIOB_PCOR |= 0x40;//GPIOB的输出数据寄存器的位6清0(LED1亮)
//GPIOB_PDOR = 0x00000c80;
for(i = 0;i < 6000000;i++)
{};
GPIOB_PCOR |= 0x80;//GPIOB的输出数据寄存器的位7清0(LED2亮)
//GPIOB_PDOR = 0x00000c00;
for(i = 0;i < 6000000;i++)
{};
GPIOB_PCOR |= 0x400;//GPIOB的输出数据寄存器的位10清0(LED3亮)
//GPIOB_PDOR = 0x00000800;
for(i = 0;i < 6000000;i++)
{};
GPIOB_PCOR |= 0x800;//GPIOB的输出数据寄存器的位11清0(LED4亮)
//GPIOB_PDOR = 0x00000000;
for(i = 0;i < 6000000;i++)
{};
GPIOB_PSOR |= 0xcc0;//GPIOB的输出数据寄存器的位11/10/7/6置1(LED全灭)
//GPIOB_PDOR = 0x00000cc0;
}
}
只因选择,所以热爱
只因有痛,所以珍惜
只因很笨,所以学习 -----不点记