一、基础知识与明确
1、GPIO的有效电平
由按键结构决定,按键按下时输入为低电平,按键悬空时为输入为高电平,按键的输入给到GPIO的引脚(例如PC13)
2、条件控制语句
if(a):如果a为非0数字或字符那么就为真,if条件成立,反之不成立。
if(!a):如果!a为真,也就是a为0时,if条件成立,反之不成立。
if(a!=0):如果a不等于0,则使得if条件成立,反之不成立。等价于if(a)。
if(a==0): 如果a等于0,则使得if条件成立,反之不成立。等价于if(!a)。
3、单片机的执行速率一般为1s几十万次,按下按键的时长够走while循环很多次。
二、应用设计
1、功能需求
开发键控灯功能,即灯灭时,按一下按钮灯亮,灯亮时,按一下按钮灯灭。
2、设计思路
将PA5配置为数字推挽输出,PC13配置为数字输入。检测到PC13的输入从高电平变成低电平,PA5的值翻转。PA5初始输出为高电平。
3、软件流程图

4、主函数分析
int main()
{
int btn_previous,btn_current; //定义变量
LedInit(); //Led灯的初始化
BtnInit(); //按钮的初始化
btn_previous = 1; //初始化变量
while(1){
btn_current = BtnGet(); //获取当前按键的输入值
if(!btn_current) //如果按键的输入为0,则进入第一层if语句
{
if(btn_previous) //如果之前的按键输入为1,则进

最低0.47元/天 解锁文章
12万+

被折叠的 条评论
为什么被折叠?



