STM32单片机
文章平均质量分 93
STM32单片机教程是基于STM32F103ZET6芯片的,适用于正点原子的战舰V3开发板,今天起让STM32成为我们的一部分,相信“好习惯让你所向披靡”!
肥肥胖胖是太阳
我的人生格言:不积跬步无以至千里。
展开
-
IIC总线原理详细解析
IIC总线原理概述IIC的基本特性IIC是一种串行,半双工的总线,主要用于“近距离,低速”芯片之间的数据有线传输。IIC一共有两根总线:SCL时钟总线,SDA数据收发总线。两根总线的作用分别为:SCL来负责两个通信芯片之间的时钟同步,SDA用于芯片之间的数据收发工作。IIC结构简单因此抗干扰能力较弱,不适合进行远距离的传输,但是结构简单的同时对应着协议复杂程度提高。IIC通信原理下图为由“主机”与“从机”连接而成的通信网络:何为从机?何为主机?其实主机是动作的发出者,从机是.原创 2020-10-31 11:47:36 · 7584 阅读 · 0 评论 -
基于战舰V3的NRF24L01模块的原理剖析及应用
基于战舰V3的NRF24L01模块的原理剖析及应用为什么无线发射功率的数值均为负数?其实归根到底为什么接收的无线信号是负值,这样子是不是容易理解多了。因为无线信号多为mW级别,所以对它进行了极化,转化为dBm而已,不表示信号是负的。1mW就是0dBm,小于1mW就是负数的dBm数。弄清信号强度的定义就行了:RSSI(接收信号强度:Received Signal Strength Indicator)= 10logP, 只需将接收到的信号功率P代入就是接收信号强度(灵敏度)。例如:1. 如原创 2021-07-24 23:00:48 · 1633 阅读 · 0 评论 -
基于战舰V3的MPU6050六轴陀螺仪实验
基于战舰V3的MPU6050六轴陀螺仪实验陀螺仪的分类3轴传感器指的是3轴的加速度,根据这个加速度我们解算出XY两轴的角度。6轴传感器指的是3轴的加速度和3轴角速度,根据这两个数据我们解算出XYZ三轴的角度(Z轴是角速度积分解算,所以存在累计误差)。9轴传感器指的是3轴的加速度、3轴角速度和3轴磁场,根据这三个数据我们解算出XYZ三轴的角度(Z轴是磁场解算,相当于电子罗盘,但受磁场干扰的影响),九轴传感器彻底解决了Z轴角度的漂移,使用前需磁场校准,使用时原理磁场干扰区域。10轴传感器指的原创 2021-07-18 16:25:18 · 3004 阅读 · 7 评论 -
嵌入式的编程思想:应用层与硬件层的“藕断丝连”
嵌入式的编程思想:应用层与硬件层的“藕断丝连”要做到嵌入式应用的代码逻辑清晰,且避免重复的造轮子,没有好的应用架构怎么行:1. 如果没有好的架构,移植将会是一件很痛苦的事情;2. 如果没有好的架构,复用是最大的难题,没法更大限度的复用原有的代码;3. 如果没有好的架构,一旦驱动改了,所有的地方都要改,费时费力且很容易出错;4. 如果没有好的架构,应用层中穿插着硬件驱动层的代码,看着会是一片混乱,逻辑不清,代码维护起来会很困难。我们这里将代码分为两部分:应用层和硬件层,两者的关系如下:原创 2021-07-17 20:35:35 · 1596 阅读 · 3 评论 -
基于战舰V3的4.3寸电容触摸屏
基于战舰V3的4.3寸电容触摸屏原理简介4.3寸电容屏可以等效为800*480个点,当我们触碰到LCD屏幕时,触摸点的电容值会发生变化,此时内置MPU可以读取到这一点的准确坐标我们访问其中的寄存器就可以获取该信息,而且电容屏不像电阻屏无需任何校准,只需使用厂家提供的初始化序列初始化一下GT9147芯片即可。引脚简介GT9147采用IIC驱动,由于一般器件的IIC读写时序都很简单,使用STM32的IIC固件库有点杀鸡焉用牛刀的感觉,因此这里我们使用普通GPIO口模拟IIC时序驱动GT.原创 2021-07-14 00:12:10 · 2083 阅读 · 0 评论 -
基于战舰V3的电阻型触摸实验
基于战舰V3的电阻型触摸实验原理简介电阻屏幕用到的是XPT2046芯片,其原理比较简单:当我们触摸到某个点位时,X,Y轴的电阻分布会发生改变:当我们触摸下屏幕的一点时,芯片的引脚会发生电平变化,此时我们等待一段时间后,就可以读取到我们想要的坐标数据。芯片引脚简介这里最重要的是上面这几个标注了的引脚,这些引脚的含义如下:1.串行时钟:时钟信号传输线2.片选信号:就是使能信号,低电平有效;3.串行数据输入:向XPT2046芯片写入指令/数据;3.状态转换信..原创 2021-07-12 19:38:10 · 890 阅读 · 3 评论 -
基于战舰V3的LCD显示实验详解和剖析
基于STM32的4.3寸TFTLCD的使用在这里,我们只剖析NT35510部分的代码。LCD显示方向设置函数代码示例//设置LCD显示方向//dir:0,竖屏;1,横屏voidLCD_Display_Dir(u8dir){if(dir==0)//竖屏{lcddev.dir=0;//竖屏if(lcddev.id==0x5510){...原创 2021-07-05 15:53:52 · 2607 阅读 · 0 评论 -
4.3寸TFTLCD之NT35510关键指令解析
TFTLCD的关键指令以及硬件连接LCD的硬件连接从图中可以看出来,LCD的16位数据线由D[15:11],D[10:5],D[4:0]组成。与MCU的D[15:0]数据线一一对应。我们会有疑问:NT35510的24位RGB色如何转化成16位的RGB色呢?将8位R值右移3位,变为了5位; 8位G值右移2位,变成了6位; 8位B值右移3位,变成了5位;通过此种转换,我们最后就得到了对应的16位RGB色彩:RRRRRGGGGGGBBBBB。特别注意NT35510的指令是16位宽,数据除原创 2021-07-03 23:29:27 · 4909 阅读 · 4 评论 -
TFTLCD之FSMC详解
TFTLCD的引脚介绍TFTLCD显示用到的引脚如下所示:表格1 名称 说明 CS LCD片选信号 RS 命令/数据控制信号(0:命令;1:数据) WR 写使能(低电平有效) RD 读使能(低电平有效) RST 复位信号 D0~D15原创 2021-07-03 18:33:27 · 15064 阅读 · 7 评论 -
基于战舰V3的4.3寸TFTLCD的原理详述
基于战舰V3的4.3寸TFTLCD的原理详述8080时序简介NT35510支持多种时序读写操作,我们这里使用的是8080并口操作,读/写时序如下:表格 1 操作 RD WR RS 写入命令 1 0 0 读取命令 0 1 0 写入原创 2022-02-12 17:07:56 · 1584 阅读 · 0 评论 -
基于正点原子STM32F103ZET6的ESP8266应用
基于正点原子STM32F103ZET6的ESP8266应用前言本次测试所使用的是正点原子的ATK-ESP8266 WIFI模块。直接使用官方提供的固件使用AT指令来配置模块并使用。模块默认为AT指令状态,模拟波特率为115200(8bit数据位,1bit停止位)。硬件连接使用USB转TTL方式(电脑需要安装CH340驱动)连接ESP8266,接线图如下:转存失败重新上传取消Wifi模块ESP8266简介ESP8266 是串口型WIFI,速度比较低,不能用来传输图像或者视频原创 2021-06-14 11:36:35 · 10984 阅读 · 9 评论 -
STM32的USARTx中u3_printf函数解析
基于正点原子STM32F103ZET6的ESP8266应用STM32的USARTx中u3_printf函数解析我们在STM32中常常使用printf来将信息打印至PC端控制台上。但是有这样一种函数,它可以把数据以我们指定的格式装进字符串中——sprinft和vsprintf。⑴ sprintf函数使用的方式如下:① 将多个参数以指定格式写入字符串inta=1,b=2; chars[10]; sprintf(s,"a=%d,b=%d",1,2); puts(s);...原创 2021-06-13 10:58:08 · 1548 阅读 · 1 评论 -
时钟控制RCC应用与详细解析
时钟控制RCC为什么需要时钟系统?时钟系统就像一个中枢神经,驱动着芯片上所有的器件在同一时间按照特定的工作频率进行工作。我认为时钟系统有如下功能:① 时钟系统相当于一个“频率适配器”。我们生活中常用的是电压适配器,全球每个国家的工频电压不太一样,我们如果到这些国家旅行不可能带适配于特定国家的电源充电器吧,这太繁琐了,要实现“一器多用”,就要有适配器的概念。在STM32中,有许多器件,这些器件在工作时需要的频率不一样,例如:GPIO工作在性能状态时其工作频率是72MHz,但是如果把那么高的频率用在原创 2021-05-14 23:14:12 · 2810 阅读 · 0 评论 -
AFIO时钟误区及其用法解析
AFIO时钟误区解析AFIO误区我们一般错误理解为“启用IO口的复用功能就要使能AFIO时钟”,但是我们回想一下GPIO的结构图仔细了解一下GPIOx_Pin的结构:在上图中,从端口引脚传入的信号进入了复用输入通道,而且我们看到流入普通GPIO输入通道的信号同样可以流入复用功能输入通道,这表明“与引脚复用输入通道相连的内外设(内外设就是IIC这类设备)这些设备根本不需要AFIO时钟就可以接收到所在引脚输入的信号”。复用功能为什么不用AFIO?我们还了解一个名词叫“复用功能”,复.原创 2021-04-29 07:23:00 · 6712 阅读 · 8 评论 -
基于STM32的DMA实验
基于STM32的DMA实验DMA的功能一个完整的微控制器(处理器)通常由CPU、存储器和外设等组件构成。这些组件一般在结构和功能上都是独立的,即一个组件能持续正常工作并不一定建立在另一个组件正常工作的前提上,而各个组件之间的协调与交互就由CPU来完成。如此一来,CPU作为整个芯片的“大脑”,其职能范围可谓广阔吗,如CPU先从A外设拿到一个数据送给B外设使用,同时C外设又需要D外设提供一个数据……这样的数据搬运工作使得CPU的负荷显得相当繁重。严格来说,搬运数据只是CPU众多职能中比较不重要的一种原创 2020-10-24 11:20:24 · 1651 阅读 · 0 评论 -
嵌入式C语言中__I,__O,__IO详解
嵌入式C语言中__I,__O,__IO简介__I,__O,__IO在代码中的定义这是ST库里面的宏定义,定义如下:#define __I volatileconst /*!<defines'readonly'permissions*/#define __O volatile /* !<defines'writeonly'permissions*/#define __IO volatile /* !<defines...原创 2020-10-22 19:14:09 · 6943 阅读 · 3 评论 -
“IIC与E2PROM通信实验”详解
IIC与E2PROM通信实验IIC工作逻辑图IIC中事件标志从发送器在接收到地址和清除ADDR位后,从发送器将字节从DR寄存器经由内部移位寄存器发送到SDA 线上。说明:S=Start(起始条件),Sr=重复的起始条件,P=Stop(停止条件),A=响应,NA=非响应,EVx=事件(ITEVFEN=1时产生中断) 事件名称 事件产生原因 含义 如何清除事件标志位 ...原创 2020-11-21 20:26:58 · 2239 阅读 · 0 评论 -
ST官方的IIC实例解析(第一部分)
ST官方的IIC实例解析LM75A的管脚描述 输入/输出(引脚属性) 引脚标识 描述 输入 VCC 供电电压 输入 GND 参考地 输入 A2~A0 低3位地址引脚 输入 SDA ..原创 2020-11-04 18:51:56 · 1695 阅读 · 1 评论 -
PWM与ADC实验——自定义精度的DAC输出实验(基于战舰V3开发板)
PWM与ADC实验PWM为什么可以作DAC来使用?虽然大容量的 STM32F103 具有内部 DAC,但是更多的型号是没有 DAC 的,不过 STM32所有的芯片都有 PWM 输出,因此,我们可以用 PWM+简单的 RC 滤波来实现 DAC 输出,从而节省成本。PWM 本质上其实就是是一种周期一定,而高低电平占空比可调的方波。实际电路的典型 PWM 波形,如图 26.1.1 所示:图 26.1.1 的 PWM 波形可以用分段函数表示为式①:其中:T 是单片..原创 2020-10-27 16:40:31 · 2347 阅读 · 0 评论 -
PID闭环控制算法解析(最透彻)
PID闭环控制算法解析PID简介 P Proportion(比例) 就是输入偏差乘以一个常数 I Integral(积分) 就是对输入偏差进行积分运算 D Derivative(微分) 对输入偏差进行微分运算 P(比例),I(积分),D(微分)环节P环节作用:对当前时刻的偏差进行比例放大采样.原创 2020-10-11 19:24:48 · 71646 阅读 · 11 评论 -
基于战舰V3开发板的DAC输出实验&简易正弦波发生器实验
基于战舰V3开发板的DAC输出实验DAC原理解析DAC外设工作逻辑框图DACx通道与GPIO引脚的对应关系 DAC_OUT1 PA4 DAC_OUT2 PA5 DAC转换原理不能直接对寄存器DAC_DORx写入数据,任何输出到DAC通道x的数据都必须写入DAC_DHRx寄存器(数据实际写入DAC_DHR8Rx、DAC_DHR12Lx、DAC_DHR12Rx、DAC_DHR8RD、DAC_DHR1原创 2020-10-08 16:03:26 · 1044 阅读 · 2 评论 -
为什么DAC中要将GPIO对应引脚的模式配置为“模拟输入模式”?
疑难问题将GPIO配置为模拟输入模式后,GPIO相应引脚属性的变化当I/O端口被配置为模拟输入配置时:● 输出缓冲器被禁止;● 禁止施密特触发输入,实现了每个模拟I/O引脚上的零消耗。施密特触发输出值被强置为’0’;● 弱上拉和下拉电阻被禁止;● 读取输入数据寄存器时数值为’0’。下图示出了I/O端口位的高阻抗模拟输入配置:为什么将GPIO配置为模拟输入模式?我们看到模拟输入模式中信号行走的路线上,没有用于“数字信号处理的施密特触发器”和“输入数据寄存器”,并原创 2020-10-06 17:35:15 · 3972 阅读 · 3 评论 -
ADC实验之光敏传感器
ADC实验之光敏传感器硬件连接我们可以测量A的电位,进而测量光的强度,光强与A点电压的对应关系如下:电流反应的光敏二极管的导通状态,光强与电流对应关系如下:因此,我们可以得出ADC读取的电压值的数字量(12位)与光照强度的关系:软件配置(采用单通道单次转换的ADC)Main.c#include "stm32f10x.h"#include "delay.h"#include "lcd.h"#include "usart.h"#in...原创 2020-10-02 16:41:26 · 12963 阅读 · 0 评论 -
基于STM32战舰V3开发板的“待机低功耗唤醒实验”(超详细)
待机低功耗唤醒实验低功耗模式为何而来?在系统或者电源复位后,微控制器出于运行状态之下,HCLK为CPU内核提供时钟,CPU内核执行代码。当CPU不需要继续运行时,可以利用多种低功耗模式来节省功耗。三种低功耗模式运行时都具备哪些功能?① 睡眠模式只有CPU停止工作,各个外设正常工作,依靠任何中断/事件唤醒。② 停止模式(深度睡眠模式)所有时钟都已停止,但是1.8V内核电源工作。PLL,HIS和HSE等外部时钟源功能禁止,同时电压检测器也可进入低功耗模式,但是用于保存数据的.原创 2020-10-01 15:58:08 · 2425 阅读 · 1 评论 -
基于STM32的RTC实时时钟实验
基于STM32的RTC实时时钟实验RTC是什么?STM32的RTC外设,实质是一个掉电后还继续运行的定时器,从定时器的角度来看,相对于通用定时器TIM外设,它的功能十分简单,只有计时功能(也可以触发中断).但是从掉电还能继续运行来看,它是STM32中唯一一个具有这个功能的外设(RTC外设的复杂之处不在于它的定时,而在于它掉电还可以继续运行的特性)。所谓掉电,是指电源VDD断开的情况下,为了RTC外设掉电可以继续运行,必须给STM32芯片通过VBAT引脚街上锂电池.当主电源VDD有效时,由VDD给原创 2020-09-26 11:00:56 · 9682 阅读 · 1 评论 -
基于STM32战舰开发板的USMART调试组件的使用
基于STM32战舰开发板的USMART调试组件的使用USMART调试组件是什么?USMART是正点原子团队为其STM32开发平台开发的一种类似linux的shell的调试工具。具体工作过程是通过串口发送命令给单片机,然后单片机收到命令之后调用单片机里面对应的相关函数,并执行,同时支持返回结果。USMART是干什么的?USMART的功能就是改变了函数参数修改的方式,我们以前总是“修改函数参数->下载到开发板中执行”,但是使用USMART之后,我们不用在那样做了,而是“用串口进行函数参数的原创 2020-09-22 15:41:52 · 770 阅读 · 0 评论 -
基于STM32战舰开发板的内部温度传感器实验
基于STM32战舰开发板的内部温度传感器实验内部温度传感器简介测量的温度位置内部温度传感器集成在芯片中,测量的是芯片的温度。如何测量对应位置的温度?温度传感器与ADC1_CH16相连,另外ADC1_CH17是与内部参照电压VREF+相连,因此我们可以通过ADC1的第16路通道测量芯片温度实时对应的电压转换得来的数字量,也可以通过ADC1的第17路通道测量内部参照电压对应的数字量。我们知道STM32的ADC转换DATA是12Bits的,因此输入电压(小于3.3V大于..原创 2020-09-19 10:17:30 · 1541 阅读 · 3 评论 -
STM32的ADC实验的原理简介
STM32的DAC实验的原理简介DAC简介Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。STM32的DAC的配置战舰V3开发板的DAC通道与引脚的对应关系模拟量输入的范围(DAC正常工作的范围)STM32F103ZET6芯片中的电源部分(VREF与VSSA):我们看到Vref-连接到了GND,而VREF+通过跳线帽连接到了VDD(VDD连接到了开发...原创 2020-09-18 17:00:10 · 6943 阅读 · 0 评论 -
智能小车运行及测速原理
光电码盘测速原理如何求解小车速度参数(大小与方向)?测量速度方向的方法根据A、B两相脉冲的超前滞后关系确定电机旋转方向:假定A相超前于B相时,为电机正方向;则当A相滞后于B相,当前电机为反向旋转。普通测量速度大小的方法单位时间内采集的脉冲数就是转速大小的表征值,可以根据它转换为各种单位下的转速大小。四倍频测量速度的大小下面我们说一下编码器倍频的原理。为了提高大家下面学习的兴趣,我们先明确,这是一项实用的技术,可以真正地把编码器的精度提升 4 倍。作用可类比 于单反相.原创 2020-09-18 14:54:41 · 6697 阅读 · 2 评论 -
基于正点原子的FTFLCD原理阐述
基于正点原子的FTFLCD原理阐述STM32操作FTFLCD模块的流程图任何 LCD,使用流程都可以简单的用以上流程图表示。其中硬复位和初始化序列,只需要 执行一次即可。而画点流程就是:设置坐标→写 GRAM 指令→写入颜色数据,然后在 LCD 上 面,我们就可以看到对应的点显示我们写入的颜色了。读点流程为:设置坐标→读 GRAM 指令 →读取颜色数据,这样就可以获取到对应点的颜色数据了。TFTFLCD的数据端口简介ILI9341 液晶控制器自带显存,其显存总大小为 172800(240原创 2020-09-15 13:39:57 · 1583 阅读 · 1 评论 -
串口通信协议之SPI通信协议
串口通信协议之SPI通信协议SPI通信协议什么是SPI?SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。SPI优点支持全双工通信通信简单数据传输速率块缺点没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。特点①:高速、同步、全双工、非差分、总线式②:主从机通信模式SPI原创 2020-07-01 23:14:23 · 4460 阅读 · 0 评论 -
基于STM32战舰开发板的SPI通信实验(全双工)
基于STM32战舰开发板的SPI通信实验(全双工)SPI通信模块简介SPI是英语Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是 Motorola首先在其MC68HCXX系列处理器上定义的。SPI 接口主要应用在 EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间,提供方便,正是出于这种简原创 2020-09-13 17:10:05 · 3706 阅读 · 0 评论 -
基于STM32的步进电机实验
目录基于STM32的步进电机实验步进电机介绍步进电机基础知识步进电机参数说明例题说明基于28BYJ步进电机的介绍28BYJ步进电机的配置流程电机工作状态与引脚的关系四相八拍的正向旋转工作方式STM32的PWM控制步进电机运转的实质STM32库函数配置Main.cLed.cLed.hTimer.cTimer.h基于STM32的步进电机实验步进电机介绍步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况.原创 2020-09-09 19:17:06 · 4322 阅读 · 1 评论 -
OLED自定义显示图像实验(基础->进阶)
目录OLED显示实验(8080接口方式)OLED接口说明读写流程简述SSD1306 的 8080 并口读写时序解析OLED显存的排列OLED基本操作流程OLED库函数使用说明OLED库函数使用示例写入字节操作函数——OLED_WR_Byte(u8 dat,u8 cmd)画点操作函数——OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot)OLED的取模方式矩形区域填充函数——OLED_Fill(u8 x1,u8 y1,u8 x.原创 2020-09-03 21:47:27 · 6641 阅读 · 2 评论 -
“电容触摸按键实验”实例解析
目录电容触摸按键实验电容触摸按键的基本原理(原理图层面)新电容的产生与作用充放电性能的变化脉冲如何被捕获原理图层面的连接硬件配置的大致流程电容触摸按键的基本原理(软件配置层面)函数说明TPAD_InitConfig()函数TPAD_Reset()函数TPAD_GetValue()函数TPAD_GetMaxValue()函数TPAD_Scan()程序示例Main.cLed.cLed.hTpad.cTpad.hTimer.c原创 2020-08-25 08:12:38 · 2252 阅读 · 3 评论 -
STM32输入捕获实验示例详解
STM32输入捕获实验寄存器部分讲解(以TIM5_CH1为例)TIMx_CCMR1.ICF[3:0]的作用滤波器的作用就是“采集取样以便于确定准确的电平状态”。我们以ICIF[3:0] = 0010为例:实例应用:假设输入信号在最多5个内部时钟周期的时间内抖动,我们须配置滤波器的带宽长于5个时钟周期。因此我们可以(以fDTS频率)连续采样8次,以确认在TI1上一次真实的边沿变换,即在TIMx_CCMR1寄存器中写入IC1F=0011。TIMx_CCER...原创 2020-08-22 10:35:24 · 5458 阅读 · 17 评论 -
PWM输出实验详细示例
目录PWM输出实验PWM的工作原理(以向上计数为例)PWM与AFIO引脚重映射综合实验库函数使用说明PWM配置的基础知识点GPIO端口功能重映射时钟分割的含义PWM的两个比较模式是什么?预加载寄存器(TIMx_CCMR1)的作用PWM输出极性是什么?PWM配置注意事项占空比怎么设置?库函数配置步骤第一步:使能GPIO/AFIO/TIM的外设总线时钟第二步:配置引脚功能的重映射第三步:配置定时器的基本属性第四步:配置PWM输出模式第五步:原创 2020-08-17 19:14:46 · 5217 阅读 · 0 评论 -
通用定时器中断实验详解
目录通用定时器中断实验定时器中断时钟源解析教你如何看逻辑信号图向上计数模式(时钟分频因子=1)中央对齐计数模式(时钟分频因子=1,ARR=6)相关寄存器简介事件产生寄存器(TIMx_EGR)状态寄存器(TIMx_SR)计数器(TIMx_CNT)预分频器(TIMx_PSC)自动重装载寄存器(TIMx_ARR)控制寄存器 1(TIMx_CR1)用库函数配置带有中断的通用定时器库函数介绍定时器参数的选取设计要求TIMX程序设计流程第一步:初始原创 2020-08-17 08:47:13 · 2863 阅读 · 4 评论 -
浅谈中断挂起与中断标志的区别
中断挂起如果中断发生时,正在处理同级或高优先级异常,或者被掩蔽,则中断不能立即得到响应,此时中断被悬起。悬挂意味着等待而不是舍去,当优先级高的或者同等级先发生的中断完成后,被挂起的中断才会执行。中断的悬起状态可以通过“中断设置悬起寄存器(SETPEND)”和“中断悬起清除寄存器(CLRPEND)”来读取,还可以写它们来手工悬起中断。中断标志当进入中断后,中断标志位会自动被置1,代表着“正在执行中断服务函数中”。当我们结束终端服务函数之前,一定要在函数中清除中断标志位。我们可以这样理解:中断标志位原创 2020-08-16 18:13:53 · 5632 阅读 · 0 评论 -
窗口看门狗WWDG实例解析&IWDG与WWDG的异同点
目录窗口看门狗WWDGIWDG与WWDG的异同点WWDG的中断相较于IWDG的优势IWDG与WWDG的检测时钟IWDG与WWDG的触发复位条件不同IWDG与WWDG的检测力度不同WWDG的工作原理WWDG注意事项WWDG寄存器简介CR控制寄存器CFR窗口配置寄存器SR状态寄存器WWDG超时时间计算WWDG的库函数WWDG库函数(含中断服务函数)的使用代码示例Main.cLed.cLed.hKey.cKey.hWwdg.c原创 2020-08-15 17:29:32 · 2270 阅读 · 1 评论