AT32 按键例子 - 外部中断模式
今天给大家分享一个基于 AT32 单片机的中断按键例子,这个例子通过一个按键控制一个 LED 的亮灭(中断-上升沿触发模式)。
原理图:

我们用的是 FP11_SW1 ,注意要是能内部上拉电阻,这里我用了 AT32 Work Bench 可视化配置工具。

中断配置:

配置为中断模式并且为上升沿触发,也就是我们在按下按键并且松开时才会触发中断。因为使能了内部上拉电阻,默认为高电平,所以才会在按键松开时触发中断。

我们需要勾选 EXINT15_10_IRQ,这样会在 at32f435_437_int.c 文件中生产 EXINT15_10_IRQHandler() 中断函数。
主循环代码:
1 | // main.c |
EXINT15_10_IRQHandler() 函数:
1 | // at32f435_437_int.c |
这里用的了两个函数 exint_interrupt_flag_get() 和 exint_flag_clear(),前者为判断中断标志位,后者为清除标志位。
结果
将上面代码编译下载到单片机后,发现比较稳定,不需要软件消抖可不会多次触发。

至此本实验到此结束!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小土坡的博客!












