STM32中断很强大,STM32中断可以嵌套,任何外设都可以产生中断,其中中断和异常是等价的。
中断执行流程: 主程序执行过程可以产生中断去执行中断的内容(保护现场),然后在返回继续执行中断。
STM32中断类型:
系统异常:内核水平 10个
外部中断:外设水平 60个
STM32关全局中断有多种方法,分别操作PRIMASK、FAULTMASK和BASEPRI寄存器。
第一种方法,:操作PRIMASK寄存器
__set_PRIMASK(0) /* 使能全局中断 */
或者
__enable_irq(); /* 使能全局中断 */
第二种方法:操作FAULTMASK寄存器
__set_FAULTMASK(0); /* 使能全局中断*/
第三种方法:操作BASEPRI寄存器
__STATIC_INLINE void __set_BASEPRI(uint32_t basePri)
关键字:STM32 全局中断
引用地址:
STM32关全局中断的方法 STM32中断类型
推荐阅读最新更新时间:2024-11-10 07:46
STM32低成本WiFi播放电路设计详解
以STM32F103($2.5718)作为微处理器,设计一个低成本的无线WiFi 音乐播放系统,结合接收WiFi 数据的WM-G-MR-08(wm631)模块和VS1003B 音频解码器实现MP3 音乐播放。基于Android 系统开发的客户端软件采用手机控制,完成手机端与控制端之间的数据传输,实现手机远程对音乐播放器的控制。结果表明,该系统设备简单方便、成本较低、系统可靠、易于扩展。本设计基于已经发展成熟的WiFi 无线网络,充分利用WiFi 覆盖范围广、传输速度快、抗干扰能力强等优点。Android 具有开源性、封装性、性价比高等优点,基于Android 系统开发的客户端软件移植性强,通用性高。采用手机作为控制终端,便于操作。
[单片机]
stm32输入捕获,捕获高电平
输入捕获就是用定时器检测引脚上的电平时间,可以检测高电平时间和低电平时间,然后可以算引脚上信号的频率和占空比。 基本思路就是利用定时器的输入捕获功能。 定时器捕获到高电平或低电平就会进入捕获中断 例如: 我们要捕获高电平时间 0 设置定时器计数频率和装载值,一般设置1MHz,65535 1 设置定时器捕获为高电平捕获 2 进入捕获中断后,获取CNT计数值或CCRx值,定时器捕获到电平后会把CNT的值保存到CCRx。 设置成低电平捕获。 3 再次进入捕获中断,获取CNT计数值-上次的CNT值=总高电平时间。 设置成高电平捕获。 4 重复2-3即可完成下一次捕获。当然还要考虑溢出的情况,
[单片机]
STM32之独立看门狗与窗口看门狗总结
一、独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号) 。 在键值寄存器(IWDG_KR)中写入 0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值 0xFFF 递减计数。当计数器计数到末尾 0x000 时,会产生一个复位信号(IWDG_RESET)。无论何时,只要键寄存器 IWDG_KR 中被写入 0xAAAA, I
[单片机]
STM32之软件CRC和硬件CRC速度测试
一、测试条件 硬件: STM32L432KC 主频: 80MHz 编译器: IAR 8.20.1 编译选项: High Speed no size constraints CRC 生成多项式: 0x782f 二、测试方法 软件提前生成CRC表,用于查询。分别使用软件CRC算法和硬件CRC外设对一个缓存进行计算,目的是从该缓存中找到同步头。同步头共11字节,前两个字节为后九个字节的CRC校验值。通过迭代算法依次对11字节进行计算和比较,当找到同步头后返回同步头偏移量。通过时间比较两者之间的速度。 三、测试结果 迭代24464次后,从缓存中找到同步头。 不开启编译时间优化时,软件算法用时23
[单片机]
STM32使用BSRR和BRR寄存器快速操作GPIO端口
STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置'1'或置'0'。 GPIOx_BSRR的高16位中每一位对应端口x的每个位,对高16位中的某位置'1'则端口x的对应位被清'0';寄存器中的位置'0',则对它对应的位不起作用。 GPIOx_BSRR的低16位中每一位也对应端口x的每个位,对低16位中的某位置'1'则它对应的端口位被置'1';寄存器中的位置'0',则对它对应的端口不起作用。
[单片机]
STM32GPIO的八种输入输出模式
上拉电阻:把不确定的信号通过电阻连接到高电平,电信号初始化为高电平。 下拉电阻:把不确定的信号通过电阻连接到低电平,电信号初始化为低电平。 输入 1.上拉输入:输入信号通过上拉电阻被初始化为高电平,再通过TTL施密特触发器从模拟信号9V、3.3V、1.9V转为数字信号0、1后存入输入寄存器中。 2.下拉输入:同上拉输入一样,区别只在通过下拉电阻初始化为低电平。 3.浮空输入:即信号输入既不连接上拉也不连接下拉,输入信号电压值不确定,通过TTL施密特触发器从模拟信号9V、3.3V、1.9V转为数字信号0、1后存入输入寄存器中。通常用于IIC、串口USART中。 4.模拟输入:不通过上下拉电阻,也不通过TTL施密特
[单片机]
STM32以太网MAC Loopback的实现
前言 在STM32以太网调试中经常会遇到“设备接收不到数据”,或者“设备发出的数据对端设备收不到”之类的问题。遇到这类问题首先要做的是定位问题发生的部位,这样做的好处就是可以指明下一步调试的方向,缩小分析的范围。以下图为例我们做个简单的说明,设备A和设备B通过以太网通信,现发现设备B无法接收设备A发送的消息,问题可能出现在几个地方: 应用层的程序,或者协议栈出错,数据根本没有到STM32以太网外设。这种情况我们在调试的时候,在以太网输出函数low_level_output中打个断点就可以检查出来。 STM32以太网MAC出现问题,没有把数据发送出去。对于这种情况,可以通过STM32以太网的MAC loopback功能来检查MAC
[单片机]
GD32单片机STM32远程下载手机程序升级固件下载局域网网页升级工具
GD32、STM32单片机,是我们最常见的一种MCU。通常我们在使用STM32单片机都会遇到程序在线升级下载的问题。 GD32/STM32单片机的在线下载通常需要以下几种方式完成: 1、使用ST/GD提供的串口下载工具,本地完成固件的升级下载。 2、自行完成系统BootLoader的编写,将系统程序分为BootLoader和APP两个部分,BootLoader完成固件升级。 3、使用STM32/GD固件服务器,完成固件的升级,固件服务器https://simplewifi.taobao.com/ 几种方式各有优缺点: 使用ST提供的方法进行固件升级,方法简单,不需要额外的开发。但是,只能本地完成STM32单片机的升级。
[单片机]