完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文开发环境:外部中断简介 这里的外部指的是单片机以外,所以通过IO的输入来获取中断,典型的外部中断有按键和一些传感器工作状态的输出等。外部中断有事件和中断两种类型,简单来说中断类型是将中断递给NVIC,让CPU去即响应这种中断。而事件模式则是递给其他的外设处理,参考博客:《EXTI中断和事件的区别》,《STM32的“外部中断”和“事件”区别和理解》 初始化IO口为外部中断 通用初始化 通用初始化指的是系统时钟(RCC)的配置,调试口(SW/JTAG)使能等等,每一个工程都需要的配置,详见:STM32CubeMx 初始化和读/写 IO口操作 外部中断配置 本文使用的开发板PA0连接了一个按键在PA0引脚处,所以以PA0为例演示外部中断的配置:
示例程序 当我们配置好外部中断以后,一旦发生外部中断,程序就会调用外部中断回调函数,所以我们需要在回调函数中写入代码,如下图所示: .. ... ... #include "usart.h" ... ... void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin == GPIO_PIN_0) { uint8_t str[7] = "EXTI0rn"; HAL_UART_Transmit(&huart1,str,7,0x200); } } 这里使用了串口来验证程序是否进入了中断,回调函数是不需要用户声明的,CubeMx工程已经做了相关操作,直接重写即可,这段代码可以添加在mian.c函数中,也可以添加在 gpio.c 中或其他文件中。 下载验证 程序编写完成以后,就可以编译下载,验证功能: 注意,由于是上下边缘触发,所以按下和抬起,都会触发一次中断,由于本例程没有做按键消抖,所以有时候会发现按下一次,触发几次的情况。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1936浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
729浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
569浏览 3评论
594浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
552浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 21:41 , Processed in 0.743374 second(s), Total 46, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号