你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【NUCLEO-H533RE评测】+02exit控制LED翻转

[复制链接]
〃聪聪哥哥 发布时间:2024-7-30 20:19

使用工具:keil5.38a,stm32cubemx 6.11.0版本 type-c一根

1:中断知识的介绍:

STM32的每个IO都可以作为外部中断输入。STM32的中断控制器支持19个外部中断/事件请求:

线0~15:对应外部IO口的输入中断。

线16:连接到PVD输出。

线17:连接到RTC闹钟事件。

线18:连接到USB唤醒事件。

Stm 32的中断配置方式:每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。

二:一般软件配置中断初始化步骤:

1: 初始化IO口为输入。

2: 开启IO口复用时钟。

3: 设置IO口与中断线的映射关系。

4: 初始化线上中断,设置触发条件等。

5:配置中断分组(NVIC),并使能中断。

6:编写中断服务函数。

7: 清除中断标志位

3:cube软件配置图如下:

具体的STM32 cubxMx 使用可以参考第一篇的步骤,这里不再重复介绍。。

2png.png

4:编写中断服务函数:

在MX_GPIO_Init()中需要确定一下,是否开始了中断使能

/ EXTI interrupt init/

HAL_NVIC_SetPriority(EXTI13_IRQn, 0, 0);

HAL_NVIC_EnableIRQ(EXTI13_IRQn);

由于是使用官方的工具生成的底层驱动函数,所以我们不用再去使能PC口的时钟,如果我们自己配置的,需要注意下。

void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)

{

if (GPIO_Pin == GPIO_PIN_13)

{

HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);

}

}

在GPIO口初始化中,修改 IO口的模式可以配置成上升沿触发或者下降沿触发的工作模式。

下降沿沿触发配置如下:

/Configure GPIO pin : PC13 / GPIO_InitStruct.Pin = GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

上升沿触发配置如下:

/Configure GPIO pin : PC13 / GPIO_InitStruct.Pin = GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

1.jpg

中断的应用场景:

按钮/开关控制:当用户按下按钮或切换开关时,可以触发外部中断来响应用户的操作,例如控制LED的亮灭或执行特定功能。这种中断类型用于按键控制设备启动、停止或切换模式。

传感器触发:当传感器检测到特定事件或条件发生时(霍尔传感器、接近开关等等),可以触发外部中断来及时处理传感器数据。这种中断类型在工业控制中经常用到。

编码器计数:可以将中断口检测编码器计数功能,3600rpm测试时候,极少情况下才会出现丢数的情况,可以做到精准的电机控速。

收藏 评论0 发布时间:2024-7-30 20:19

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版