前言
学习stm32 NVIC接口编程,学会使用常用的NVIC接口函数,优改中关优先级,开/关单个中断,开/关所有中断,开/关所有中断和异常,系统软件重启等功能。
示例详解
基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。
本示例所用的最小系统板原理图:
从本节开始,关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置:
系统时钟树
NVIC器配置
开启exit-0外部中断和串口1中断,
串口1的配置如下图所示
引脚配置
中断配置(保持默认即可)
工程代码
在main.c 中加入如下图所示代码:
将程序编译,仿真调试,可以看到上面程序对应的汇编实现:
在Cortex-m3权威指南中有写到M3有特殊功能寄存器-中断屏蔽寄存器组(PRIMASK, FAULTMASK,以及 BASEPRI)
OK,本期实验完成!下期见!
关键字:STM32 基础系列教程 NVIC
引用地址:
STM32 基础系列教程 21 - NVIC
推荐阅读最新更新时间:2024-11-13 14:25
STM32 基础系列教程 14 - IIC
前言 学习stm32 IIC接口的使用,用IIC 接口实现与IIC设备的通信功能。 示例详解 基于硬件平台: STM32F103C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。 本示例所用的最小系统板原理图: 关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置: 系统时钟树 IIC 接口配置 引脚配置(如上图右侧所示,保持默认即可) 中断配置(保持默认即可) 工程代码 在main.c 中加入如下图所示代码: 代码的功能是
[单片机]
基于STM32设计的智能空调
一、项目背景 随着人们生活水平的不断提高,对居住环境的舒适度要求也越来越高。空调作为一种重要的家电设备,已经成为了现代家庭中必不可少的一部分。本文介绍了一种基于STM32的智能空调设计方案,可以自动地根据环境温度进行温度调节。 二、设计思路 2.1 整体构架 智能空调系统由温度检测传感器、微控制器、OLED显示屏、按键及直流电源等组件构成。传感器用于检测环境温度,通过微控制器进行处理后,将结果输出到OLED显示屏上展示。按键可根据需求调整预设阀值,切换模式等操作。 2.2 硬件设计 (1)温度检测传感器 选择DS18B20数字温度传感器作为本系统的温度检测器件。该传感器具有精度高,响应速度
[单片机]
STM32单片机智能温控风扇设计简介
一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602液晶、按键、蜂鸣器、L298N电机驱动模块、直流电机、DS18B20温度传感器等。 系统功能: 系统运行后,LCD1602显示传感器检测的温度值;默认以自动模式运行,若按下K4键切换为手动模式,此时可以通过K1和K2控制风扇加减速,风扇档位共5档(0-5)。当再次按下K4键切换为自动模式;自动模式下,实时检测温度值,当温度高于上限且在2C范围内,以3档运行。当温度高于上限且在4C范围内,以4档运行。当温度高于上限且在6C范围内,以5挡运行。当温度高于上限且超过6C范围,以5档运行且蜂鸣器报警。若温度在上下限范围内,风扇以2档运行。若
[单片机]
OpenMV数据打包发送以及STM32对数据的解析(串口方式)
今天尝试了使用Openmv用串口发送数据,32接收,遇到了一些坑,但是最后还是实现了,难住我的地方并不是关于传输的代码,而是那个板子串口3不知道因为什么原因接收到的数据是错误的,这个原因正在寻找,找到了再记录。 Python提供了便捷的将数据打包的方法。我使用的方法就是将数据以二进制的方式打包然后通过串口逐字节发送。 struct模块的pack(fmt, v1, v2, ...) 函数提供了按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)的功能,关与格式,有一个表定义了所有支持的字符及数据格式,如下: microPython的串口使用方法也是很简单的,代码如下: uart = py
[单片机]
普通8位单片机和STM32单片机复位电路区别
普通8位单片机,如AT、STC等芯片厂商,单片机须使用高电平复位,复位后保持低电平 STM32单片机,使用低电平进行复位,NRST复位引脚在一般情况需保持高电平电路才能正常工作。 另外单片机上电时间是有要求的,所以因根据数据手册匹配指定的RC复位电路。
[单片机]
串口通信—STM32串口功能框图讲解
STM32 的USART 简介 通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于USART 还有一个UART(Universal Asynchronous Receiver and Transmitter),它是在USART 基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是UART。 串行通信一般是以帧格式传输数据,即是一帧一帧的传输,每帧包含有起始信号、数据信息、停止信息,可能还有校验信息。US
[单片机]
STM32学习005_端口复用与重映射
一、使用复用功能(AF)时,要对端口位配置寄存器进行编程。 1)对于复用的输入功能,配置必须为上拉/下拉或者浮空; 2)对于复用输出功能,配置必须为复用功能输出模式(推挽,开漏)。 对于双向复用功能,必须配置为复用功能输出模式(推挽或者开漏),此时输入驱动器配置为浮空输入模式。 如果将一端口配置成复用输出功能,会将引脚和输入寄存器断开,并和片上外设的输出信号连接, 如果软件将一GPIO 口配置为复用输出功能,但外设没有被激活,它的输出将不确定。 要正常使用GPIO 复用功能,分三步来配置: 第一步,位寄存器配置; 第二步,开启对应的外设时钟; 第三步,激活该端口。 二、端口重映射 优点:优化电路设计;扩展功能,减少外设芯片资源;
[单片机]
STM32独立看门狗IWDG时限的确定
看门狗定时时限= IWDG_SetReload()的值 / 看门狗时钟频率 看门狗时钟频率=LSI(内部低速时钟)的频率(40KHz)/ 分频数 1.STM32 看门狗的 例子 IWDG的时限定为280微秒。这个时限可能会随着LSI(内部低速时钟)的频率漂移而产生微小的变化。 /* IWDG timeout equal to 280 ms (the timeout may varies due to LSI frequency dispersion) ------------------------------------------------------------- */ /* Enable write acces
[单片机]