stm32培训课件分解
合集下载
《STM32单片机仿真开发实例》教学课件 1.3 STM32的内部构造
其中尤以前两种启动方式最为常见:①从主闪存启动即正常运行用户编写的程序, ②从系统存储器启动即进入ST公司预置的BootLoader(启动加载程序),一般用于从 串口1下载用户程序(具体将在1.4部分介绍)。
对于STM32F103R6而言,BOOT0引脚即60号引脚,BOOT1引脚即28号引脚 (PB2)。
Peripherals(片上外设映射地址)位于Block2中,起始地址0x4000 0000。
由于STM32使用C语言开发程序,因此程序与数据的存储地址完全由编译器自动分 配,无需人为干预。
定义变量,比如:
int a=12; 编译器为变量a自动分配一个4字节的SRAM空间并赋予初值12。 定义常量,比如:
const int b=23;
当变量b为常量时,编译器为变量b自动分配一个4字节的ROM空间并赋予初值23。
1.3.2 STM32的启动(BOOT)模式
STM32F103系列单片机具有三种启动方式,如下表所示,分别为从Main Flash memory(主闪存)启动、从System memory(系统存储器)启动和从Embedded SRAM(内置静态随机存储器)启动。
1.3.3 时钟树
STM32片内外设较多,为了实 现低功耗设计,允许用户对各种 外设的时钟信号进行配置,由此 构成了如右图所示的时钟树。
STM32内部采用了PLL( Phase-Locked Loop,锁相环)技 术,可以将总线频率最高倍频至 72MHz。
To be continued...
Flash ROM(用于存放程序)位于Block0中,地址范围0x0800 0000~0x0801 FFFF ,STM32F103R6地址范围0x0800 0000~0x0800 7FFF(共计32KB);
对于STM32F103R6而言,BOOT0引脚即60号引脚,BOOT1引脚即28号引脚 (PB2)。
Peripherals(片上外设映射地址)位于Block2中,起始地址0x4000 0000。
由于STM32使用C语言开发程序,因此程序与数据的存储地址完全由编译器自动分 配,无需人为干预。
定义变量,比如:
int a=12; 编译器为变量a自动分配一个4字节的SRAM空间并赋予初值12。 定义常量,比如:
const int b=23;
当变量b为常量时,编译器为变量b自动分配一个4字节的ROM空间并赋予初值23。
1.3.2 STM32的启动(BOOT)模式
STM32F103系列单片机具有三种启动方式,如下表所示,分别为从Main Flash memory(主闪存)启动、从System memory(系统存储器)启动和从Embedded SRAM(内置静态随机存储器)启动。
1.3.3 时钟树
STM32片内外设较多,为了实 现低功耗设计,允许用户对各种 外设的时钟信号进行配置,由此 构成了如右图所示的时钟树。
STM32内部采用了PLL( Phase-Locked Loop,锁相环)技 术,可以将总线频率最高倍频至 72MHz。
To be continued...
Flash ROM(用于存放程序)位于Block0中,地址范围0x0800 0000~0x0801 FFFF ,STM32F103R6地址范围0x0800 0000~0x0800 7FFF(共计32KB);
《STM32嵌入式系统设计与应用》 课件 第12章 STM32 CAN应用系统设计
⑺ 采用短帧结构,传输时间短,受干扰概率低,具有极 好的检错效果。
⑻ CAN的每帧信息都有CRC校验及其他检错措施,保 证了数据出错率极低。
⑼ CAN的通信介质可为双绞线、同轴电缆或光纤,选 择灵活。
⑽ CAN节点在错误严重的情况下具有自动关闭输出功 能,以使总线上其他节点的操作不受影响。
12.2 STM32的CAN总线概述
第12章 STM32 CAN应用系 统设计
本章讲述了STM32 CAN总线系统设计,包括CAN的特 点、STM32的CAN总线概述、bxCAN工作模式、测试模式 、bxCAN工作模式、STM32的CAN总线操作和CAN通信应 用实例。
12.1 CAN的特点
20世纪80年代初,德国的BOSCH公司提出了用CAN( Controller Area Network)控制器局域网络来解决汽车内部 的复杂硬信号接线。目前,其应用范围已不再局限于汽车工 业,而向过程控制、纺织机械、农用机械、机器人、数控机 床、医疗器械及传感器等领域发展。CAN总线以其独特的设 计,低成本、高可靠性、实时性、抗干扰能力强等特点得到 了广泛的应用。
5)管理 中断可屏蔽; 邮箱占用单独1块地址空间,便于提高软件效率。
6)双CAN CAN1:是主bxCAN,它负责管理在从bxCAN和512字节
的SRAM存储器之间的通信; CAN2:是从bxCAN,它不能直接访问SRAM存储器; 这2个bxCAN模块共享512字节的SRAM存储器。
CAN网络拓扑结构如图12-1所示。 bxCAN模块可以完全自动地接收和发送CAN报文,且完 全支持标准标识符(11位)和扩展标识符(29位)。控制、 状态和配置寄存器应用程序通过这些寄存器,可以:
CAN总线通信协议主要是规定通信节点之间是如何传递 信息的,通过一个怎样的规则传递消息。
⑻ CAN的每帧信息都有CRC校验及其他检错措施,保 证了数据出错率极低。
⑼ CAN的通信介质可为双绞线、同轴电缆或光纤,选 择灵活。
⑽ CAN节点在错误严重的情况下具有自动关闭输出功 能,以使总线上其他节点的操作不受影响。
12.2 STM32的CAN总线概述
第12章 STM32 CAN应用系 统设计
本章讲述了STM32 CAN总线系统设计,包括CAN的特 点、STM32的CAN总线概述、bxCAN工作模式、测试模式 、bxCAN工作模式、STM32的CAN总线操作和CAN通信应 用实例。
12.1 CAN的特点
20世纪80年代初,德国的BOSCH公司提出了用CAN( Controller Area Network)控制器局域网络来解决汽车内部 的复杂硬信号接线。目前,其应用范围已不再局限于汽车工 业,而向过程控制、纺织机械、农用机械、机器人、数控机 床、医疗器械及传感器等领域发展。CAN总线以其独特的设 计,低成本、高可靠性、实时性、抗干扰能力强等特点得到 了广泛的应用。
5)管理 中断可屏蔽; 邮箱占用单独1块地址空间,便于提高软件效率。
6)双CAN CAN1:是主bxCAN,它负责管理在从bxCAN和512字节
的SRAM存储器之间的通信; CAN2:是从bxCAN,它不能直接访问SRAM存储器; 这2个bxCAN模块共享512字节的SRAM存储器。
CAN网络拓扑结构如图12-1所示。 bxCAN模块可以完全自动地接收和发送CAN报文,且完 全支持标准标识符(11位)和扩展标识符(29位)。控制、 状态和配置寄存器应用程序通过这些寄存器,可以:
CAN总线通信协议主要是规定通信节点之间是如何传递 信息的,通过一个怎样的规则传递消息。
STM32ppt课件
12b ADC (1µs)
Temp sensor
* 只有在Flash大于256KB(包含)的芯片上才包括DAC, EMI (144 pins), I2S, SDIO
7
STM32F103 “增强型”系列
ARM Lite Hi-Speed Bus Matrix / Arbiter (max 72MHz)
Int. RC oscillators
32KHz + 8MHz
PLL
RTC / AWU
1x SDIO** 1x USB 2.0FS 1x bxCAN 2.0B
2x SPI/I2S**
1/2/4x USART/LIN Smartcard / IrDa Modem Control
1x SPI
1/2x I2C
ratio Up to 512KB
FLASH
“增强型”系列
Up to
2x12b ADC
72M Hz CPU
64KB SRA
M
EMI DAC **
(1µs)
Temp sensor
AC
USB CAN
I2S*
timer
SDI O*
“基本型”系列
36M Hz CPU
Up to 48KB SRA
M
EMI DAC **
6kB-64kB SRAM
20B Backup Regs
External Memory Interface**
Image Sensor**
Clock Control
Bridge
ARM Peripheral Bus Bridge
(max 36MHz)
2/3/5x 16-bit Timer
《STM32单片机仿真开发实例》教学课件 1.4 STM32的开发方式
硬件实物调试
软件仿真模拟
利用Flash Loader Demonstrator将程序下载
至单片机Flash ROM
利用Proteus仿真模拟
1.4.2 STM32CubeIDE简介
STM32CubeIDE是ST官方在2019年推出的STM32专用IDE。 STM32CubeIDE由原先两个工具软件整合而成:一个是ST公司在2016年推出的图 形化配置工具STM32CubeMX,;另一个是ST公司在2017年从Atollic收购的ARM编 程工具TrueSTUDIO,其主要功能是用于编写STM32程序代码。
1.4 STM32的程序开发方式
知识目标: 了解STM32的程序开发流程,了解与STM32程序开发相关的软件与硬件
知识。
1.4.1 STM32程序开发流程概述
利用STM32CubeIDE的图 形化配置工具生成工程目录
与初始化代码
利用STM32CubeIDE的代 码编辑工具编写程序并生成
HEX文件
STM32电路仿真软件采用了来自英国Labcenter公司出品的EDA工具Proteus,2016 年末Proteus 8.6中开始增加对STM32的支持,推荐使用Proteus 8.15及以上版本。
To be continued...
1.4.3 硬件实物调试简介
STM32可以通过ISP、ST-LINK、J-LINK三种途径下载程序,本课程主要介绍第一 种程序下载方式——ISP方式。该方式需要用到ST免费提供的Flash Loader
Demonstrator工具,并且需要在IDE中设定生成HEX文件(默认不生成HEX文件)。
1.4.4 软件仿真模拟简介
stm32PPt
ADC系统功能特性
– – – – – – – – – – – ADC开关控制 ADC时钟 ADC通道选择 ADC的转换模式 ADC的扫描模式 ADC的注入通道管理 间断模式 ADC的校准模式 可编程的通道采样时间 外部触发转换 DMA请求
中断
模拟看门狗
ADC的数据对齐
• ADC_CR2寄存器的ADC的数据对齐 ALIGN位选择转换后数据储存的对齐 方式。
• • •
//位复位寄存器 //锁定寄存器
通用I/O接口的编程方法
– 库函数:
• • • • • • • • • • • • • • • • • GPIO_DeInit函数 GPIO_AFIODeInit函数 GPIO_Init函数 GPIO_StructInit函数 GPIO_ReadInputDataBit函数 GPIO_ReadInputData函数 GPIO_ReadOutputDataBit函数 GPIO_ReadOutputData函数 GPIO_SetBits函数 GPIO_ResetBits函数 GPIO_WriteBit函数 GPIO_Write函数 GPIO_PinLockConfig函数 GPIO_EventOutputConfig函数 GPIO_EventOutputCmd函数 GPIO_PinRemapConfig函数 GPIO_EXTILineConfig函数
stm32嵌入式开发
第一讲:嵌入式系统开发概述
课程安排
– 何为嵌入式系统 – 嵌入式系统的特点及发展趋势 – 嵌入式系统的开发过程 – 如何成为嵌入式开发人员
何为嵌入式系统
– 嵌入式系统,英文全称为Embeded System。 – IEEE 的定义:嵌入式系统是“控制、监视或 者辅助装置、机器和设备运行的装置”。 – 业界普遍采用的定义:嵌入式系统是以应用 为中心、以计算机技术为基础、软件硬件可 裁剪、适应应用系统对功能、可靠性、成本、 体积、功耗等严格要求的专用计算机系统。
STM32讲义2..
线程模式 (特权或非 特权)+ SP_process多 用于操作系 统的任务状 态。
只能使用SP_main
特权处理模式+ SP_main在前后台和3的寄存器
通用寄存器(R0—R7、R8—R12) 堆栈指针(R13) 链接寄存器(R14) 程序计数器(R15) 程序状态寄存器(APSR、IPSR、EPSR) 异常中断寄存器(PRIMASK、
负数或小于标志: 1:结果为负数或小于 0:结果为正数或大于
中断状态寄存器(IPSR)
IPSR为当前激活(被响应)的异
常的ISR编号。
IPSR的位分配
31
98
0
保留
中断号
ISR NUMBER 基础级别 =0 Reset =1 NMI =2 SVCall =11
......
执行状态寄存器(EPSR)
0
主堆栈
特权级
1
进程堆栈
用户级
2.4 CM3的总线接口
主要内容
ARM的总线标准 CM3的总线结构
2.4.1 ARM总线标准
ARM微控制器使用的是AMBA总线体系结构
AMBA(Advanced Microcontroller Bus Architecture)是ARM公司公布的总线标准,先进 的AMBA规范定义了三种总线:
2.1.4 CM3微处理器的特点---指令方面
• ARMv7-M:Thumb-2 ISA子集,包含所有基本 的16位和32位Thumb-2指令 。
• 只有SP是分组的 ,寄存器集比ARM7简单 。 • 硬件除法指令,SDIV和UDIV(Thumb-2指令) • 处理模式(handler mode)和线程模式(thread
编号 0 1 2 3
STM32考试复习(完整版)ppt课件
18
STM32 串口例程讲解
/*******************************************************************************
* Name : UART1_Configuration
*******************************************************************************/
//设置为下降沿中断
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
//中断使能,即开中断
EXTI_Init(&EXTI_InitStructure);
//调用EXTI_Init固件库函数,将结构体写入EXTI相关寄存器中
}
13
STM32外部中断例程讲解
void EXTI0_IRQHandler(void) {
9
STM32外部中断例程讲解
void RCC_Configuration(void) {
SystemInit();
//系统时钟配置为72MHZ
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,
ENABLE);
//打开AFIO时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |
//配置输入脚PA0控制按键 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); }
STM32 串口例程讲解
/*******************************************************************************
* Name : UART1_Configuration
*******************************************************************************/
//设置为下降沿中断
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
//中断使能,即开中断
EXTI_Init(&EXTI_InitStructure);
//调用EXTI_Init固件库函数,将结构体写入EXTI相关寄存器中
}
13
STM32外部中断例程讲解
void EXTI0_IRQHandler(void) {
9
STM32外部中断例程讲解
void RCC_Configuration(void) {
SystemInit();
//系统时钟配置为72MHZ
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,
ENABLE);
//打开AFIO时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |
//配置输入脚PA0控制按键 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); }
STM32单片机原理及应用PPT幻灯片课件
10
设计模式
基础型:做好需要专业的软硬件知识 智能型:在搭建的程序框架下设计 高级型:在操作系统管理下,专注应用。 介绍特色、扩展内容,比较学习。需要大家
课下认真消化资料,掌握基础内容。 STM32F10x参考手册_cn.pdf
11
二、硬件—特色接口
I/O
低功耗模式、定时器/计数器、输入捕获
7
实际工程应用的一般步骤
了解--- 背景:工艺流程,技术发展情况论述. 掌握---原理论述、同类方案比较。 设计--- 方案:系统框图,功能描述. 实现---软件流程、功能实现。
8
实际工程应用的一般步骤
9
一、STM32微控制器系列_cn.pdf
STM32的主要优点 ■ 使用ARM最新的、先进架构的Cortex-M3内核 ■ 优异的实时性能 ■ 杰出的功耗控制 ■ 出众及创新的外设 ■ 最大程度的集成整合 ■ 易于开发,可使产品 ■ 快速进入市场
IMUST B&E LAB5 ©
第一部分
STM32单片机原理及应用
6
需要掌握
掌握单片机的一般设计方法。 目前典型接口电路原理及应用。 开发环境Keil 及编程工具的使用。 能够设计建立基于单片机的系统。 设计完成一个基于STM32单片机的应用系统。
完成:系统描述,软硬件设计,调试结果并写出 报告。
引导程序,自展程序 (=bootstrap))
12
13
14
15
通用输入输出(General
) Purpose Input/Output
16
17
通用同步异步收发机 (Universal Synchronous Asynchronous Receiver Transmitter)
设计模式
基础型:做好需要专业的软硬件知识 智能型:在搭建的程序框架下设计 高级型:在操作系统管理下,专注应用。 介绍特色、扩展内容,比较学习。需要大家
课下认真消化资料,掌握基础内容。 STM32F10x参考手册_cn.pdf
11
二、硬件—特色接口
I/O
低功耗模式、定时器/计数器、输入捕获
7
实际工程应用的一般步骤
了解--- 背景:工艺流程,技术发展情况论述. 掌握---原理论述、同类方案比较。 设计--- 方案:系统框图,功能描述. 实现---软件流程、功能实现。
8
实际工程应用的一般步骤
9
一、STM32微控制器系列_cn.pdf
STM32的主要优点 ■ 使用ARM最新的、先进架构的Cortex-M3内核 ■ 优异的实时性能 ■ 杰出的功耗控制 ■ 出众及创新的外设 ■ 最大程度的集成整合 ■ 易于开发,可使产品 ■ 快速进入市场
IMUST B&E LAB5 ©
第一部分
STM32单片机原理及应用
6
需要掌握
掌握单片机的一般设计方法。 目前典型接口电路原理及应用。 开发环境Keil 及编程工具的使用。 能够设计建立基于单片机的系统。 设计完成一个基于STM32单片机的应用系统。
完成:系统描述,软硬件设计,调试结果并写出 报告。
引导程序,自展程序 (=bootstrap))
12
13
14
15
通用输入输出(General
) Purpose Input/Output
16
17
通用同步异步收发机 (Universal Synchronous Asynchronous Receiver Transmitter)
STM32讲义
不断上升,实时核逐渐发展为实时多任务操作系统 (RTOS),并作为一种软件平台逐步成为目前国 际嵌入式系统的主流。
1.1 嵌入式系统概述-嵌入式系统定义
根据IEEE(电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装 置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件 和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为 中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、 功耗严格要求的专用计算机系统。这个定义可从几方面来理解嵌入式系统:
开放性和标准性。
可靠性和稳定性。
安全性和保密性。
可扩展性和易维护性。
2.3 基于单片机的嵌入式系统设计-设计开发时的注意事项
一、合适并可扩展的平台选择 二、从参考设计开始 三、不要忽视板级支持包(BSP)或示例代 码 四、对电源管理予以充分考虑 五、考虑未来的升级需要
2.3 基于单片机的嵌入式系统设计-嵌入式系统设计方法(从单片机到单片系统的)
施工。
3、从实际情况出发,以需求为依据,总体规划,确
保系统的高度集成、总体优化、安全可靠。
4、系统充分考虑功能扩容性和技术升级性,适应当 代信息技术高速发展的要求,以求得最佳效果。
2.3 基于单片机的嵌入式系统设计-基于单片机的嵌入式系统设计基本原则与依据
可行性和适应性。
实用性和经济性。
先进性和成熟性。
2.2 基于单片机的嵌入式系统开发-嵌入式系统的特点
• 嵌入式系统通常是面向特定应用的。 • 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗
1.1 嵌入式系统概述-嵌入式系统定义
根据IEEE(电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装 置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件 和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为 中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、 功耗严格要求的专用计算机系统。这个定义可从几方面来理解嵌入式系统:
开放性和标准性。
可靠性和稳定性。
安全性和保密性。
可扩展性和易维护性。
2.3 基于单片机的嵌入式系统设计-设计开发时的注意事项
一、合适并可扩展的平台选择 二、从参考设计开始 三、不要忽视板级支持包(BSP)或示例代 码 四、对电源管理予以充分考虑 五、考虑未来的升级需要
2.3 基于单片机的嵌入式系统设计-嵌入式系统设计方法(从单片机到单片系统的)
施工。
3、从实际情况出发,以需求为依据,总体规划,确
保系统的高度集成、总体优化、安全可靠。
4、系统充分考虑功能扩容性和技术升级性,适应当 代信息技术高速发展的要求,以求得最佳效果。
2.3 基于单片机的嵌入式系统设计-基于单片机的嵌入式系统设计基本原则与依据
可行性和适应性。
实用性和经济性。
先进性和成熟性。
2.2 基于单片机的嵌入式系统开发-嵌入式系统的特点
• 嵌入式系统通常是面向特定应用的。 • 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗
《STM32单片机仿真开发实例》教学课件 4.2 LED单灯闪烁之定时器延时(阻塞方式)
TCNT
PSC 1 = 7999+1 =1000S
fCLK
8
1ms
定时器一次溢出时间:
TOUT TCNT ( ARR 1) 1000 (999 1) 106 s 1s
本次任务需要用到的新的API函数有: ① 定时器启动函数(不开中断) HAL_TIM_Base_Start
例程:
//运行定时器TIM3 if( HAL_TIM_Base_Start(&htim3) != HAL_OK ) { Error_Handler(); }
例程:
__HAL_TIM_SET_COUNTER(&htim3,0); //将定时器TIM3当前计数值设定为0
② 获取定时器当前计数值宏 __HAL_TIM_GET_COUNTER
例程:
//读取定时器TIM3当前计数值 uint16_t cnt = __HAL_TIM_GET_COUNTER(&htim3);
为TIM3的计数脉冲,预分频参数保存在一个16位的寄存器TIM3_PSC(后简称PSC,
PreScale)之中,此时TIM3的计数脉冲周期TCNT和APB1 Timer clocks频率fCLK之间的
关系是:
TCNT
PSC 1 fCLK
STM32所有的定时器都是16位定时器,即计数范围为0~65535,我们可以根据实际
STM32F103R6内部仅保留 TIM1、TIM2、TIM3三个定时 器。
(2)定时器基本定时功能 定时器最基本的功能就是定时 ,本质上就是对周期性脉冲信号 进行计数。由于STM32时钟树结 构的复杂性,因此不同的定时器 未必采用相同的时钟信号源,详 见右图。
STM32的定时器具有三种不同的计数模式: ◆向上计数模式:从默认初始值0开始做加法计数,加到预设值,产生一次溢出事 件,自动复位至初始值0开始新一轮的计数,这也是定时器最常用的计数模式。 ◆向下计数模式:从设定初始值开始做减法计数,减到0,产生一次溢出事件,自 动复位至初始值ARR开始新一轮的计数。 ◆中央对齐计数模式:在默认初始值0与预设值之间,先做向上(加法)计数,再 做向下(减法)计数,完成一个计数周期之后产生一次溢出事件,接着进行新一轮的 计数。 通常采用向上计数模式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京源智天下科技有限公司
1-4
联系方式:
NVIC的编程方法
• 库函数:
– – – – – – – – – – – – – – –
1-5
NVIC_DeInit函数 NVIC_SCBDeInit函数 NVIC_PriorityGroupConfig函数 NVIC_Init函数 NVIC_StructInit函数 NVIC_SETPRIMASK函数 NVIC_RESETPRIMASK函数 NVIC_SETFAULTMASK函数 NVIC_RESETFAULTMASK函数 NVIC_BASEPRICONFIG函数 NVIC_GetBASEPRI函数 NVIC_GetCurrentPendingIRQChannel函数 NVIC_GetIRQChannelPendingBitStatus函数 NVIC_GetIRQChannelPendingBit函数 NVIC_ClearIRQChannelPendingBit函数
21天学嵌入式开发
第十二讲:中断系统
北京源智天下科技有限公司
联系方式:
课程安排
• • • • 嵌套向量中断控制器(NVIC) NVIC的编程方法 外部中断/事件控制器(EXTI) EXTI的编程方法
北京源智天下科技有限公司
1-2
联系方式:
//中断置位使能寄存器 //中断清除使能寄存器 //中断置位挂起寄存器 //中断清除挂起寄存器 //中断活动位寄存器
//中断优பைடு நூலகம்级寄存器
typedef struct { vu32 CPUID; //CPUID基寄存器 vu32 IRQControlState; //中断控制状态寄存器 vu32 ExceptionTableOffset; //向量表偏移寄存器 vu32 AIRC; //应用中断/复位控制寄存器 vu32 SysCtrl; //系统控制寄存器 vu32 ConfigCtrl; //配置控制寄存器 vu32 SystemPriority[3]; //系统处理优先级寄存器 vu32 SysHandlerCtrl; //系统处理控制和状态寄存器 vu32 ConfigFaultStatus; //配置出错状态寄存器 vu32 HardFaultStatus; //硬件出错状态寄存器 vu32 DebugFaultStatus; //调试出错寄存器 vu32 MemoryManageFaultAddr; //存储器管理出错地址寄存器 vu32 BusFaultAddr; //总线出错地址 } SCB_TypeDef;
1-3
联系方式:
NVIC寄存器结构
typedef struct { vu32 Enable[2]; u32 RESERVED0[30]; vu32 Disable[2]; u32 RSERVED1[30]; vu32 Set[2]; u32 RESERVED2[30]; vu32 Clear[2]; u32 RESERVED3[30]; vu32 Active[2]; u32 RESERVED4[62]; vu32 Priority[11]; } NVIC_TypeDef;
北京源智天下科技有限公司
联系方式:
外部中断/事件控制器(EXTI)
• STM32的EXTI 控制器主要特性如下:
– – – – 每个中断/事件都有独立的触发和屏蔽。 每个中断线都有专用的状态位。 支持多达19 个中断/事件请求。 检测脉冲宽度低于APB2 时种宽度的外部信号。
北京源智天下科技有限公司
1-7
联系方式:
唤醒事件管理
• 通过处理外部时间或内部中断来唤醒内核。 • 通过配置任何外部I/O端口、RTC 闹钟和USB唤醒 事件可以唤醒CPU(内核从WFE退出)。
北京源智天下科技有限公司
1-8
联系方式:
外部中断/事件线路映像
北京源智天下科技有限公司
联系方式:
EXTI功能说明
• 如果需要产生中断,中断线必须事先配置好并被激 活。 • 为产生一个有效的事件触发,事件连接线必须事先 配置好并被激活。 • 硬件中断选择可以配置19 个线路做为中断源。 • 硬件事件选择可以配置19 个线路为事件源。
北京源智天下科技有限公司
联系方式:
NVIC的编程方法(续)
• 库函数:
– – – – – – – – – – – – – – –
1-6
NVIC_GetCurrentActiveHandle函数 NVIC_GetIRQChannelActiveBitStatus函数 NVIC_GetCPUID函数 NVIC_SetVectorTable函数 NVIC_GenerateSystemReset函数 NVIC_GenerateCoreReset函数 NVIC_SystemLPConfig函数 NVIC_SystemHandlerConfig函数 NVIC_SystemHandlerPriorityConfig函数 NVIC_GetSystemHandlerPendingBitStatus函数 NVIC_SetSystemHandlerPendingBit函数 NVIC_ClearSystemHandlerPendingBit函数 NVIC_GetSystemHandlerActiveBitStatus函数 NVIC_GetFaultHandlerSources函数 NVIC_GetFaultAddress函数
嵌套向量中断控制器(NVIC)
• STM32嵌套向量中断控制器(NVIC)主要特性如下:
– 具有43 个可屏蔽中断通道(不包含16 个Cortex-M3 的 中断线)。 – 具有16 个可编程的优先等级。 – 可实现低延迟的异常和中断处理。 – 具有电源管理控制。 – 系统控制寄存器的实现。
北京源智天下科技有限公司