GPIO基础输入输出验证

2019-04-15 16:22发布

******************************************************************/ #include "iostm8s208mb.h"//主控芯片的头文件 /************************常用数据类型定义*************************/ #define u8 uint8_t #define u16 uint16_t #define u32 uint32_t typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; /*************************端口/引脚定义区域***********************/ #define KEY PB_IDR_IDR0//连接至KEY引脚 #define LED PI_ODR_ODR0//连接至LED引脚 /**************************函数声明区域***************************/ void delay(u16 Count);//延时函数声明 /**************************主函数区域*****************************/ void main(void) { PB_DDR_DDR0=0; //配置PB0端口为输入模式 PB_CR1_C10=1; //配置PB0端口为弱上拉输入模式 PB_CR2_C20=1; //使能PB0端口外部中断 PI_DDR_DDR0=1; //配置PI0端口为输出模式 PI_CR1_C10=1; //配置PI0端口为推挽输出模式 PI_CR2_C20=0; //配置PI0端口低斜率输出 LED=1; //上电后让PI0引脚输出高电平 while(1) //死循环 { if(KEY==0)//KEY按键按下 { delay(5);//延时法去除按键抖动 if(KEY==0)//KEY确实按下了 { LED=!LED;//LED状态取反操作 } while(!KEY);//KEY按键松手检测 } } } /****************************************************************/ //延时函数delay(),有形参Count用于控制延时函数执行次数,无返回值 /****************************************************************/ void delay(u16 Count) { u8 i,j; while (Count--)//Count形参控制延时次数 { for(i=0;i<50;i++) for(j=0;j<20;j++); } }