1配置时钟
2配置下载口
3选择GPIO
我选择的是PA0和PA1,PA0驱动LED灯,设置为output,PA1为中断引脚,配置为GPIO_EXTI,然后配置他们的引脚。
初始电平为低电平,模式为推挽输出,无上下拉和下拉都可以,我配的是无上下拉,速度也是随便配,然后设置个名字。
中断配置的是下降沿触发,上下拉选择上拉,我的硬件连接是PA1-按键-接地,所以所以电平要配置为上拉按键按下后才会有电平变化,下降沿触发上升沿触发都可会,下降沿就是按键按下的时候触发,上升沿就是按键抬起的时候触发,下降沿触发就是按键按下的时候触发。
然后配置终端的优先级分组和抢占、响应优先级。
然后生成工程,在中断中用系统的延时函数会导致程序卡死,可以找网上的延时函数,正点原子的也可以用。我这里没用,只需要找到这个callback,然后在里面写中断处理就可以了。
效果:
按一下亮,再按一下,灭。
加消除抖动的话可以看这篇文章:
https://blog.csdn.net/ima_xu/article/details/103595720?spm=1001.2014.3001.5506