STMCU小助手
发布时间:2022-5-5 17:53
|
1 概述 1.1 资源概述 开发板:ST官方NUCLEO-F103RB开发板 CUBEMX版本:1.3.0 MDK版本:5.23 主控芯片型号:STM32F103RBT6
1.2 引脚资源分配
1.3 中断概述 外部中断/事件控制器框图
优先级分组可以设置为5种方式。分别是1个抢占优先级/16个子优先级到16个抢占优先级/1个子优先级。
1.4 实现功能 实现功能: 1、上电初始化后,LED2灯亮。 2、若按键被按下,触发外部中断,则将LED2灯状态翻转。 2 软件开发,使用中断的方式 2.1 CUBEMX配置 Button部分原理图如下,PC13为低输入有效。电路中与按键并联的100nF是按键消抖用,使用正点原子的开发板没有此电容,会出现按一次,LED灯亮灭各一次的现象,说明抖动了,执行了两次中断。
PC13配置为中断模式,下降沿触发,上拉。
中断分组设置,采用默认设置,抢占优先级0,子优先级0。
中断优先级说明,线10到线15使用同一个中断优先级,PC13对应的是线13。
2.2 程序代码 生成程序代码,系统自动对LED2和Button进行了初始化,并对Button对应的中断进行了分组和使能。
在main函数中增加初始化LED2,让上电初始化时亮灯。
增加中断回调函数,当检测到中断时执行中断回调函数,翻转LED2灯的状态。
while(1)函数保留为空,编程到此完成。 实现过程分析。 1、在stm32f1xx_it.c中定义了EXIT15-10中断服务函数。
2、在stm32f1xx_hal_gpio.c中定义了HAL_GPIO_EXTI_IRQHandler。
3、在main函数中定义了回调函数HAL_GPIO_EXTI_Callback。 4、当Button被按下时,1到3会依次执行。 3 使用两次检测电平的方式 程序源代码如下,使用了gg=G VIm的自动调整格式功能,这个工具是真香,实现的功能是循环,当第一次按时,1S闪烁一次,再按一次时,500mS闪烁2次,按第三下时250mS闪烁4次。在写程序过程中同样用到了ALT +/的补全提示功能。
4 实现结果 上电后LED灯常亮,当有按键按下时,LED翻转状态。黑色按键是复位键Reset,蓝色按键是用户按键(PC13 Button)。
Tips:在使用中断时请务必配置好gpio的上下拉,若为下降沿触发,则配置为上拉。若为上升沿触发,则配置为下拉。否则有可能导致中断不可用。 |
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
OpenSTLinux 6.1发布:M33-TD加持+安全升级,STM32MPU开发效率翻倍!
【经验分享】STM32CubeIDE汉化
手把手教你VSCode搭建STM32开发环境
RTOS在STM32中的应用
【下载有礼】STM32 Finder华为应用商店正式上线!移动选型工具助力开发效率升级
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
微信公众号
手机版