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

中断相关知识

提示:文章

文章目录

  • 前言
  • 一、背景
  • 二、
    • 2.1
    • 2.2
  • 三、
    • 3.1
  • 总结

前言

前期疑问:
1、中断嵌套是什么?
2、为什么EXTI文章中,对按键中断向量需要配置。而串口配置接收中断的时候不需要配置中断向量?
简单搜了下百度,中断嵌套好像是在一个中断中再触发另一个中断。这样的话好像又涉及到知识盲区,先不管这个。

答:串口也是需要配置的,即在NVIC_InitType结构体中配置USART1中断源或者叫中断向量。但是实际上两者还是有区别。对于串口中断,包括配置PA9、PA10的GPIO口,然后配置中断分组和中断优先级,在配置中断优先级的时候就配置了中断向量和使能中断。最后就是配置USART,配置波特率和停止位和长度等信息,配置波特率就是串口独有的。
而按键EXTI在配置了GPIO口后,将GPIO口配置成浮空输入。再配置NVIC中的中断源后,两个按键配置两个中断源,然后就是配置具体是哪一个引脚,因为比如KEY1是PA0,使用的中断源是EXTI0中断源,但是实际EXTI0中断源对应Px0-Px15多个GPIO口(x为A…G),实际文章实例教程中是将EXTI_Init和GPIO_InitType写在一起的,我是觉得也可以分开写。
实例教程中GPIO和EXTI是在一个函数中配置的

本文目标:


一、背景

这个文章其中写的时间是在EXT文章后面的。而实际野火中中断文章是在EXTI文章前面的。之所以在这里EXTI文章是在这篇中断文章前面,是因为之前没有单独给中断新建一个文章。但是在后面看EXTI文章的时候,意识到还有不少中断的知识点不甚其解。比如EXTI配置外部中断的时候是要配置EXTI_InitType结构体,并且指定外部中断向量。还配置了NVIV_InitType结构体。关于上述知识点我还存在模糊理解,所以又回到中断文章重新看文章。
现在看完中断文章,对上述疑问有了些理解。下面解答上述的问题:

1、EXTI_InitType是什么?是配置外部中断的,里面涉及到指定中断向量是哪一个,然后需要在中断服务函数中实现功能,比如按键按下led灯亮。 另外还有配置是中断还是事件,按键就配置成中断。 另外还有配置是上升沿触发中断还是下降沿出发中断
2、NVIC是什么?是配置中断优先级的。里面有4个成员,一个是配置优先级分组,一个是…
上述的表述有问题,直到我开始整理NVIC的成员的时候我才意识到我的理解还是有遗漏,而且我还意识到之前疑问的一个地方。 因为NVIC_InitType成员中四个成员①中断源②抢占式优先级(主优先级)③子优先级④使能中断。然后就涉及到一个问题,串口中断并不是没有配置中断,而是配置了中断。然后我还有一个疑问,比如串口是PA9和PA10,是USART1中断,我配置成USART2中断可以吗?
3、NVIC_PriorityGroupConfig这个函数是配置中断分组的,一个可以分成5组,由4位寄存器配置。当抢占优先级为0位时,子优先级就为4位,所以抢占优先级为0,子优先级有0-15,一共16种优先级。到抢占优先级为4位时,子优先级就为0位,所以抢占优先级为0-15,一共16种优先级,子优先级为0种。这个寄存器是NVIC_IPRx寄存器,只使用了高4位 。文中提到优先级可以配置成0-255,这个是怎么算出来的。哦哦想了下可能是有8位,最大值就是256个

特别说明:
其中文中还有一个段落是特别说明,指出了只需要配置一次中断优先级分组就行了,如果多次配置,只取最后一次配置的。

二、

2.1

2.2

三、

3.1


总结

未完待续

相关文章:

  • C语言的全称:(25/6/6)
  • python模块——tqdm
  • An improved YOLACT algorithm for instance segmentation of stacking parts
  • 双面沉金PCB应用:打造卓越电子设备的黄金工艺
  • 深入浅出:计算机网络体系结构——信息世界的“交通规则”
  • C语言速成15之告别变量碎片化:C 语言结构体如何让数据管理从混乱走向有序
  • MCP协议三种传输机制全解析
  • 在线OJ项目测试
  • C++.OpenGL (7/64)摄像机(Camera)
  • 云服务器厂商机房是什么
  • 玛哈特辊式矫平机:塑造金属平整的精密力量
  • U-Mail邮件加密,保障邮件系统信息安全
  • 5.1 HarmonyOS NEXT系统级性能调优:内核调度、I/O优化与多线程管理实战
  • LlamaIndex 工作流简介以及基础工作流
  • 开源语义分割工具箱mmsegmentation基于Lovedata数据集训练模型
  • x32dbg/x64dbg SwissArmyKnife 插件导入map文件不生效
  • 我用Amazon Q写了一个Docker客户端,并上架了懒猫微服商店
  • 动态IP与静态IP:数字世界的“变脸术”与“身份证”
  • 深入理解 Linux Kernel Panic:常见原因与实战分析
  • 网络库libhv介绍
  • 网站开发和维护合同/优化官网咨询
  • 嘉兴英文网站建设/搜索关键词怎么让排名靠前
  • 做网站使用什么软件的/最新地址
  • php 做的应用网站/网络营销环境分析
  • 专业定制网站建设代理/深圳十大教育培训机构排名
  • tp框架做网站的优点/手机软文广告300字