2023版 STM32实战3 按键外部中断(电路与代码都讲解)
1.2023版 STM32实战3 按键外部中断(电路与代码都讲解)
2.2023版 STM32实战4 滴答定时器精准延时3.2023版 STM32实战5 基本定时器中断4.2023版 STM32实战6 输出比较(PWM)包含F407/F103方式5.2023版 STM32实战7 通用同步/异步收发器(串口)F103/F4076.2023版 STM32实战8 独立看门狗(IWDG)7.2023版 STM32实战1 LED灯驱动(电路与代码都讲解)8.2023版 STM32实战2 按键驱动(电路与代码都讲解)9.Keil调试STM32卡死在文件startup_stm32f10x_hd.s的B处10.基于STM32的FreeRTOS智能手环(毕业设计)11.基于STM32循迹避障蓝牙操作四驱小车(毕业设计)12.C++基础 -19- 类中的隐藏问题常规电路(带上拉电阻)
阻值可选3.3/4.7/5.1/10 单位K
偷懒电路
利用GPIO内部的上拉模式
代码(直接拷贝使用)
这是一个外部中断控制变量a增加减少的demo
为了新手方便我直接都写在了main.c文件
#include "stm32f10x.h" u8 keyflag=0; u8 a=0; void KEY_Init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_InitTypeDef GPIO_in; GPIO_in.GPIO_Mode=GPIO_Mode_IPU; GPIO_in.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4; GPIO_Init(GPIOE,&GPIO_in); } void My_EXIT_Init(void) { GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource3); GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource4); EXTI_InitTypeDef EXTI_in; EXTI_in.EXTI_Line=EXTI_Line3|EXTI_Line4; EXTI_in.EXTI_LineCmd=ENABLE; EXTI_in.EXTI_Mode=EXTI_Mode_Interrupt; EXTI_in.EXTI_Trigger=EXTI_Trigger_Falling; EXTI_Init(&EXTI_in); } void KEY_NVIC_CFG(void) { NVIC_InitTypeDef nvic_in; nvic_in.NVIC_IRQChannel=EXTI3_IRQn; nvic_in.NVIC_IRQChannelCmd=ENABLE; nvic_in.NVIC_IRQChannelPreemptionPriority=0; nvic_in.NVIC_IRQChannelSubPriority=0; NVIC_Init(&nvic_in); nvic_in.NVIC_IRQChannel=EXTI4_IRQn; nvic_in.NVIC_IRQChannelCmd=ENABLE; nvic_in.NVIC_IRQChannelPreemptionPriority=0; nvic_in.NVIC_IRQChannelSubPriority=1; NVIC_Init(&nvic_in); } //中断函数3 void EXTI3_IRQHandler(void) { EXTI_ClearFlag(EXTI_Line3); keyflag=1; } //中断函数4 void EXTI4_IRQHandler(void) { EXTI_ClearFlag(EXTI_Line4); keyflag=2; } int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); KEY_Init(); My_EXIT_Init(); KEY_NVIC_CFG(); while(1) { if(keyflag==1) { keyflag=0; a++; } else if(keyflag==2) { keyflag=0; a--; } } }
工程获取
三连后私信获取
合集:
STM32
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现