当前位置: 首页 > news >正文

STM32外部中断

GPIO->AFIO->EXTI->NVIC

进入NVIC是中断 不进入NVIC是事件

AFIO复用重映射

IP[59]~IP[0]分别对应中断 59~0。而每个可屏蔽中断占用的 8bit 并没有 全部使用,而是只用了高 4 位。这 4 位,又分为抢占优先级和子优先级。抢占优先级在前,子(响应)优先级在后。

NVIC优先级分组:抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队
还有一种情况就是当两个或者多个中断的抢占式优先级和响应优先级相同时,那么就遵循 自然优先级,看中断向量表的中断排序,数值越小,优先级越高。


硬件优先级: 越小优先级越高
EXTI:外部中断 检测指定引脚的电平,如果发生变化立马执行中断


STM32F103ZET6  0-4每个中断线都有一个中断函数,5-9共用一个,10-15也共用一个中断服务函数,16个引脚只有7个中断服务函数

中断初始化步骤
1.使能时钟
2.设置GPIO  Mode设置位it中断模式的上升/下降/双边沿
3.设置中断分组->可以不设,HAL_Init 里设置过(默认有为2,想改变的话重新设置分组 8-10位)
4.设置优先级--> HAL_NVIC_SetPriority(中断号,抢占优先级,响应优先级);
5.使能中断 HAL_NVIC_EnableIRQ(中断号);
-------------------------------
6.中断公共服务函数  //在启动文件中找
void EXTI0_IRQHandler(){
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_*);中断公共处理函数
_HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_*)}
----------------------------------
7.__weak重写弱函数回调函数
   多个引脚需判断
------------------------------------------

中断服务函数调用公共中断服务函数处理(HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_*);)公共中断处理函数调用回调函数,而回调函数为__weak弱函数,自己需要对其重写,写入自己的逻辑代码

中断中的Mode需要选择上升沿/下降沿/双边沿

__weak   代表弱函数

    *** 相同的pin不能同时触发中断  例如GPIOA_pin1 和GPIOB_pin1不能同时用  因为20条线不够80个GPIO口使用 所以GPIOA-E的相同端口使用一条,不能同时使用

AFIO主要完成两个任务:复用引脚重映射、中断引脚选择  //HAL库中不需要配置 在HAL_GPIO_Init中自动配置

中断建议:在中断函数里最好不要执行耗时过长的代码。
                 不要在中断函数和主函数调用相同的代码或者操作同一个硬件

内部时钟频率:72MHz
 

相关文章:

  • 复现 MoGe
  • 计算机网络:Socket编程 Tcp协议 第二弹
  • 传智杯-省赛-第二场(B组)题解
  • 限制数据库字段长度的公用写法:length和like和rlike对于限制字段长度的原理与区别
  • 【技海登峰】Kafka漫谈系列(九)SpringBoot整合Kafka多数据源配置
  • BFS最短路径(十六)127. 单词接龙 困难
  • 爬虫案例十四js逆向中国五矿
  • 2.库函数的模拟实现
  • ES怎么通过客户端操作和查询/curl操作指令
  • DeepBI驱动的动态预算与库存联动调整策略
  • 当AI回答问题时,它的“大脑”里在炒什么菜?
  • LoRa无线通讯边缘网关-EG2000-数据上云和远程组网
  • Android电量与流量优化
  • npm、pnpm、cnpm、yarn、npx之间的区别
  • 我的创作纪念日:730天的技术写作之旅
  • 11 | 给 Gin 服务器添加中间件
  • 晨控CK-FR08与汇川H5U系列PLC配置EtherNet/IP通讯连接手册
  • 六、OpenGL中EBO的使用及本质
  • 【Godot4.3】斜抛运动轨迹曲线点求取函数
  • 时间序列模型(1):LSTNet
  • 检疫期缩减至30天!香港优化内地进口猫狗检疫安排
  • 习近平在中拉论坛第四届部长级会议开幕式的主旨讲话(全文)
  • 学者的“好运气”:读本尼迪克特·安德森《椰壳碗外的人生》
  • 事关心脏健康安全,经导管植入式人工心脏瓣膜国家标准发布
  • 中共中央、国务院印发《生态环境保护督察工作条例》
  • 有关部门负责人就《新时代的中国国家安全》白皮书答记者问