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 许可协议。转载请注明来源 小土坡!