学网站建设 赚钱,东莞百度搜索优化,交互设计研究生,wordpress 打赏功能1、开发环境。
(1)KeilMDK#xff1a;V5.38.0.0
(2)STM32CubeMX#xff1a;V6.8.1
(3)MCU#xff1a;STM32F407ZGT6
2、机械按键简介
(1)按键内部是机械结构#xff0c;也就是内部是没有电路的。按键按下内部引脚导通#xff0c;松开内部断开。
3、实验目的原理…1、开发环境。
(1)KeilMDKV5.38.0.0
(2)STM32CubeMXV6.8.1
(3)MCUSTM32F407ZGT6
2、机械按键简介
(1)按键内部是机械结构也就是内部是没有电路的。按键按下内部引脚导通松开内部断开。
3、实验目的原理图
3.1、实验目的
(1)通过按键改变LED灯状态按键检测采用外部中断。
3.2、原理图
(1)按键选择K1按键K1接PE2。 (2)LED灯选择LED1LED1接PF9。 4、STM32CubeMX创建工程及配置
4.1、创建工程
(1)打开STM32CubeMX软件。
(2)点击File→NewProject。 (3)Commercial Part Number(商用部件号)处输入MCU型号然后选择正确的单片机型号点击Start Project(开始项目)。 (4)配置工程名、工程存放文件等。
点击Project Manager(项目经理)进行如下配置。 点击Code Generator(代码生成器)进行如下配置。 (5)修改中断优先级按键消抖在中断中要使用HAL_Delay()函数需要HAL_Delay()函数的优先级比外部中断低。 (6)点击GENERATE CODE生成KeilMDK工程。
4.2、配置时钟及GPIO
(1)HSE、LSE时钟源选择
HSE:高速外部时钟源LSE:低速外部时钟源Disable:禁用BYPASS Clock Source旁路时钟源Crystal/Ceramic Resonator :水晶/陶瓷共振器一般选择水晶陶瓷共振器旁路时钟源就是由外部给定一个时钟信号一般用于作为同步时钟。水晶/陶瓷共振器指外接晶振经过内部振荡电路产生时钟。 (2)LED1 GPIO配置 (2)K1 GPIO配置
External interrupt Mode with Resing edge trigger detection外部中断模式与上升沿触发检测External interrupt Mode with Falling edge trigger detection外部中断模式与下降沿触发检测 (3)打开K1按键的外部中断 (4)时钟树配置 (5)配置完需要重新点击GENERATE CODE更新KeilMDK代码。
5、KeilMDK软件编写
5.1、程序编写。
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if(GPIO_Pin K1_Pin) /*按键被按下产生下降沿*/{/*中断执行内容较多可在中断回调函数中设立标志位在while循环中去检测标志位。*检测到标志位在执行相应的内容这样不会影响到其他中断的响应*/HAL_Delay(15); /*延时消抖15毫秒*/if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) GPIO_PIN_RESET) /*按键消抖*/{HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin); /*LED1灯状态取反*/} }
}
5.2、完整工程下载地址。
(1)完整工程存储在码云。
(2)STM32_CSDN: CSDN中STM32专栏的所有示例代码