既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
文章目录
前言
嵌入式其实还有中断实验和AD转换实验需要复习,但是老师PPT里说他的实验代码除了教学不可用于其他用途,再加上可能也没时间写完整的实验的博客了,那就简单讲讲函数库,能够让一些代码变得看起来顺眼一点。
STM32的中断
计算机离不开中断,STM32中断功能主要由NVIC(嵌套向量中断控制器)完成。其中中断分为硬中断和软中断。
硬请求信号来自ARM核CM3的外面,来自MCU片上各种接口和MCU片外扩展的外设接口,产生时刻与CM3的工作时钟异步,在CM3中它们被称为“中断”
软中断是因ARM核CM3的活动而产生的,即在执行指令或访问存储器时产生的,因此对CM3来说是与工作时钟同步的,在CM3中它们被称为“异常”
在STM32中,把所有能打断正常执行流的事件都称为异常,不严格区别到底是外部中断还是内部异常。
下面是STM32关于中断硬件设备的结构层次图。
下面讲解一些模板库中的函数的一些参数
EXTI
STM32中有一个片外中断接口EXTI用来代理19路中断源向NVIC的中断请求(芯片外设备中断需要经EXTI和NVIC二级管理,即芯片外设备须通过某个外中断请求引脚EXTIi(i=0~15)向EXTI请求中断,EXTI再向NVIC请求中断)
EXTI_InitTypeDef
定义了EXTI的结构体,其中包含了4个参数,分别用于设置外部线路、被使能的模式、触发边沿和线路状态
EXTI_Line
EXTI_Line 用于设置外部线路,取值如下:
0-15是对GPIO口的每个引脚的中断设置,16、17、18分别对应PVD、RTC、USB。
EXTI_Mode
EXTI_Mode用于设置被使能线路的模式,取值如下:
EXTI_Trigger
EXTI_Trigger设置了被使能线路的触发边沿,取值如下:
下降沿就是从高电平向低电平跳变,上升沿就是从低电平向高电平的跳变。
EXTI_LineCmd
EXTI_LineCmd 用来定义选中线路的新状态。它可以被设为 ENABLE 或者 DISABLE。
EXTI_Init
用于初始化设置好的EXTI_InitTypeDef的结构体。
EXTI_ClearITPendingBit
用于清除中断挂起位。
GPIO_EXTILineConfig
这个函数将GPIO管脚连接到指端外设线,使得GPIO能够引发中断
初始化一个GPIO的EXTI
//PE8转接EXTI8片外中断请求线
GPIO\_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource4);
//定义一个EXTI结构体
EXTI_InitTypeDef EXTI_InitStructure;
//使用外部中断线4
EXTI_InitStructure.EXTI_Line = EXTI_Line4;
//中断请求
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
//下降沿
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
//使能线路
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
//初始化对应中断外设
EXTI\_Init(&EXTI_InitStructure);
这样我们就能够初始化一个用PE4中断使能外部线4,并且获得下降沿时才响应的中断。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
5%以上物联网嵌入式知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新