- 3
- 0
- 约1.67千字
- 约 10页
- 2023-12-11 发布于湖南
- 举报
STM32单片机学习笔记(8):外部中断
项目简介
利用CubMX生成基于32单片机的HAl库工程,然后编写程序在proteus上仿真验证。本项目最适合没有开发板的同学学习,零成本利用仿真软件率先入门STM32单片机。本项目需要实现的功能就是利用CubMX配置外部中断,由外部按键触发外部中断,控制LED灯的状态改变,并在Proteus上仿真验证。
硬件模块
STM32F103R4
LED灯
开关Button等
软件工具
CubMX
Proteus
KEIL
电路连接图
工作流程
首先,创建好CubMX工程,PA1作为LED灯输出端,PA2作为外部中断触发端。
设置好相应的GPIO参数。
使能外部中断
其余按照自己的习惯,也可以默认
最后生成代码即可。
左边stm32f1xx_it.c中有系统中断的相关函数,在main.c中只是对外部中断的引脚进行设置并使能。需要在stm32f1xx_it.c中查找使用相应的函数才能实现需要的功能。
首先在stm32f1xx_it.c中找到EXTI2_IRQHandler(void)函数,
再进入HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2)中断服务函数,里面主要有两个函数,一个复位__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin),另一个是回调函数HAL_GPIO_EXTI_Callback。
我们需要把自己想要的功能写到回调函数中HAL_GPIO_EXTI_Callback并添加到main.c文件中即可。
接下来,我们需要创建一个Proteus工程,用来验证功能。
开始验证。默认情况下LED端是高电平,即灯是灭的。
按下按键后,灯亮了。
再按又灭,继续按又亮,以此往复,功能成功实现。
程序代码
main.c
intmain(void){
/*USERCODEBEGIN1*/
/*USERCODEEND1*/
/*MCUConfiguration--------------------------------------------------------*/
/*Resetofallperipherals,InitializestheFlashinterfaceandtheSystick.*/
HAL_Init();
/*USERCODEBEGINInit*/
/*USERCODEENDInit*/
/*Configurethesystemclock*/
SystemClock_Config();
/*USERCODEBEGINSysInit*/
/*USERCODEENDSysInit*/
/*Initializeallconfiguredperipherals*/
MX_GPIO_Init();
/*USERCODEBEGIN2*/
/*USERCODEEND2*/
/*Infiniteloop*/
/*USERCODEBEGINWHILE*/
while(1)
{
/*USERCODEENDWHILE*/
/*USERCODEBEGIN3*/
}
/*USERCODEEND3*/
}
.....
/*USERCODEBEGIN4*/voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin){
unsignedi;
i=5000;
while(i--);
//HAL_Delay(20);//延时函数消抖,防止误触发
if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin)==0)
{
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);//翻转LED电平
}
}
/*USERCODEEND4*/
您可能关注的文档
- 无人叉车助力汽配企业跑出无人搬运加速度.doc
- 这一3C品牌双十一又爆单了!.doc
- 32位单片机厂商主流芯片浅谈-德州仪器Piccolo系列.doc
- 怎样设计一个基于AVR单片机的SPI串行外设接口?.doc
- 基于STM32微处理器的GPRS数据传输技术的研究.doc
- 2012年智能手机应用处理器市场,高通稳居龙头.doc
- 钳形接地电阻仪产品应用及技术指标.doc
- SW-DYH-12D多用户多功能电能表工作环境.doc
- 比亚迪半导体车规级MCU装车突破500万颗 工业级MCU累计出货超20亿颗.doc
- 亚马逊基于规则的竞价注意事项.doc
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
原创力文档

文档评论(0)