第16章 STM32中断应用概览—零死角玩转STM32-F429系列

STM32F103学习笔记一 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar 阅读详情
第16章     STM32中断应用概览

全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn

野火视频教程优酷观看网址:http://i.youku.com/firege

 

 

 

本章参考资料《STM32F4xx 中文参考手册》第十章-中断和事件、《 ARM Cortex™-M4F 技术参考手册》-4.3 章节:NVIC和4.4章节:SCB—4.4.5的AIRCR。

STM32中断非常强大,每个外设都可以产生中断,所以中断的讲解放在哪一个外设里面去讲都不合适,这里单独抽出一章来做一个总结性的介绍,这样在其他章节涉及到中断部分的知识我们就不用费很大的篇幅去讲解,只要示意性带过即可。

本章如无特别说明,异常就是中断,中断就是异常,请不要刻意钻牛角尖较劲。

16.1 异常类型

F429在内核水平上搭载了一个异常响应系统,支持为数众多的系统异常和外部中断。其中系统异常有10个,外部中断有91个。除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。有关具体的系统异常和外部中断可在标准库文件stm32f4xx.h这个头文件查询到,在IRQn_Type这个结构体里面包含了F4系列全部的异常声明。

表格 12 F429系统异常清单

编号

优先级

优先级类型

名称

说明

地址

 

-

-

-

保留(实际存的是MSP地址)

0X0000 0000

 

-3

固定

Reset

复位

0X0000 0004

 

-2

固定

NMI

不可屏蔽中断。 RCC 时钟安全系统
(CSS)
连接到 NMI 向量

0X0000 0008

 

-1

固定

HardFault

所有类型的错误

0X0000 000C

 

0

可编程

MemManage

存储器管理

0X0000 0010

 

1

可编程

BusFault

预取指失败,存储器访问失败

0X0000 0014

 

2

可编程

UsageFault

未定义的指令或非法状态

0X0000 0018

 

-

-

-

保留

0X0000 001C-

0X0000 002B

 

3

可编程

SVCall

通过 SWI 指令调用的系统服务

0X0000 002C

 

4

可编程

Debug Monitor

调试监控器

0X0000 0030

 

-

-

-

保留

0X0000 0034

 

5

可编程

PendSV

可挂起的系统服务

0X0000 0038

 

6

可编程

SysTick

系统嘀嗒定时器

0X0000 003C

表格 13 F429外部中断清单

编号

优先级

优先级类型

名称

说明

地址

0

7

可编程

-

窗口看门狗中断

0X0000 0040

1

8

可编程

PVD

连接EXTI 线的可编程电压检测中断

0X0000 0044

2

9

可编程

TAMP_STAMP

连接EXTI 线的入侵和时间戳中断

0X0000 0048

中间部分省略,详情请参考STM32F4xx 中文参考手册》第十章-中断和事件-向量表部分

84

91

可编程

SPI4

SPI4全局中断

0X0000 0190

85

92

可编程

SPI5

SPI5全局中断

0X0000 0194

86

93

可编程

SPI6

SPI6全局中断

0X0000 0198

87

94

可编程

SAI1

SAI1全局中断

0X0000 019C

88

95

可编程

LTDC

LTDC全局中断

0X0000 01A0

89

96

可编程

LTDC_ER

LTDC_ER全局中断

0X0000 01A4

90

97

可编程

DMA2D

DMA2D全局中断

0X0000 01A8

16.2 NVIC简介

在讲如何配置中断优先级之前,我们需要先了解下NVIC。NVIC是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。但是各个芯片厂商在设计芯片的时候会对Cortex-M4内核里面的NVIC进行裁剪,把不需要的部分去掉,所以说STM32的NVIC是Cortex-M4的NVIC的一个子集。

16.2.1 NVIC寄存器简介

在固件库中,NVIC的结构体定义可谓是颇有远虑,给每个寄存器都预览了很多位,恐怕为的是日后扩展功能。不过STM32F429可用不了这么多,只是用了部分而已,具体使用了多少可参考《 ARM Cortex™-M4F 技术参考手册》-4.3.11:NVIC寄存器映射。

代码 17 NVIC结构体定义,来自固件库头文件:core_cm4.h

 1 typedef
							struct {
				
 2     __IO uint32_t ISER[8]; // 中断使能寄存器
			
 3 
							uint32_t RESERVED0[24];
				
 4     __IO uint32_t ICER[8]; // 中断清除寄存器
			
 5 
							uint32_t RSERVED1[24];
				
 6     __IO uint32_t ISPR[8]; // 中断使能悬起寄存器
			
 7 
							uint32_t RESERVED2[24];
				
 8     __IO uint32_t ICPR[8]; // 中断清除悬起寄存器
			
 9 
							uint32_t RESERVED3[24];
				
10     __IO uint32_t IABR[8]; // 中断有效位寄存器
			
11 
							uint32_t RESERVED4[56];
				
12     __IO uint8_t IP[240]; // 中断优先级寄存器(8Bit wide)
				
13 
							uint32_t RESERVED5[644];
				
14     __O  uint32_t STIR; // 软件触发中断寄存器
			
15 }  NVIC_Type;
				
			

在配置中断的时候我们一般只用ISER、ICER和IP这三个寄存器,ISER用来使能中断,ICER用来失能中断,IP用来设置中断优先级。

16.2.2 NVIC 中断配置固件库

固件库文件core_cm4.h的最后,还提供了NVIC的一些函数,这些函数遵循CMSI规则,只要是Cortex-M4 的处理器都可以使用,具体如下:

表格 14 符合CMSIS标准的NVIC库函数

NVIC库函数

描述

void NVIC_EnableIRQ(IRQn_Type IRQn)

使能中断

void NVIC_DisableIRQ(IRQn_Type IRQn)

失能中断

void NVIC_SetPendingIRQ(IRQn_Type IRQn)

设置中断悬起位

void NVIC_ClearPendingIRQ(IRQn_Type IRQn)

清除中断悬起位

uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)

获取悬起中断编号

void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)

设置中断优先级

uint32_t NVIC_GetPriority(IRQn_Type IRQn)

获取中断优先级

void NVIC_SystemReset(void)

系统复位

这些库函数我们在编程的时候用的都比较少,甚至基本都不用。在配置中断的时候我们还有更简洁的方法,请看中断编程小节。

16.3 优先级的定义

16.3.1 优先级定义

在NVIC 有一个专门的寄存器:中断优先级寄存器NVIC_IPRx(在F429中,x=0...90)用来配置外部中断的优先级,IPR宽度为8bit,原则上每个外部中断可配置的优先级为0~255,数值越小,优先级越高。但是绝大多数CM4芯片都会精简设计,以致实际上支持的优先级数减少,在F429中,只使用了高4bit,如下所示:

表格 15 F429 使用4bit表达优先级

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

用于表达优先级

未使用,读回为0

用于表达优先级的这4bit,又被分组成抢占优先级和子优先级。如果有多个中断同时响应,抢占优先级高的就会抢占抢占优先级低的优先得到执行,如果抢占优先级相同,就比较子优先级。如果抢占优先级和子优先级都相同的话,就比较他们的硬件中断编号,编号越小,优先级越高。

16.3.2 优先级分组

优先级的分组由内核外设SCB的应用程序中断及复位控制寄存器AIRCR的PRIGROUP[10:8]位决定,F429分为了5组,具体如下:主优先级=抢占优先级

PRIGROUP[2:0]

中断优先级值PRI_N[7:4]

级数

二进制点

主优先级位

子优先级位

主优先级

子优先级

0b 011

0b xxxx

[7:4]

None

16

None

0b 100

0b xxx.y

[7:5]

[4]

8

2

0b 101

0b xx.yy

[7:6]

[5:4]

4

4

0b 110

0b x.yyy

[7]

[6:4]

2

9

0b 111

0b .yyyy

None

[7:4]

None

16

设置优先级分组可调用库函数NVIC_PriorityGroupConfig()实现,有关NVIC中断相关的库函数都在库文件misc.c和misc.h中。

代码 18 中断优先级分组库函数

 1 /**
				
 2   * 配置中断优先级分组:抢占优先级和子优先级
			
 3   * 形参如下:
			
 4   * @arg NVIC_PriorityGroup_0: 0bit for抢占优先级
			
 5   *                            4 bits for 子优先级
			
 6   * @arg NVIC_PriorityGroup_1: 1 bit for抢占优先级
			
 7   *                            3 bits for 子优先级
			
 8   * @arg NVIC_PriorityGroup_2: 2 bit for抢占优先级
			
 9   *                            2 bits for 子优先级
			
10   * @arg NVIC_PriorityGroup_3: 3 bit for抢占优先级
			
11   *                            1 bits for 子优先级
			
12   * @arg NVIC_PriorityGroup_4: 4 bit for抢占优先级
			
13   *                            0 bits for 子优先级
			
14   * @注意如果优先级分组为0,则抢占优先级就不存在,优先级就全部由子优先级控制
				
15   */
				
16 void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)
				
17 {
				
18 
							// 设置优先级分组
			
19     SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup;
				
20 }

表格 16 优先级分组真值表

优先级分组

主优先级

子优先级

描述

NVIC_PriorityGroup_0

0

0-15

主-0bit,子-4bit

NVIC_PriorityGroup_1

0-1

0-7

主-1bit,子-3bit

NVIC_PriorityGroup_2

0-3

0-3

主-2bit,子-2bit

NVIC_PriorityGroup_3

0-7

0-1

主-3bit,子-1bit

NVIC_PriorityGroup_4

0-15

0

主-4bit,子-0bit

16.4 中断编程

在配置每个中断的时候一般有3个编程要点:

1、使能外设某个中断,这个具体由每个外设的相关中断使能位控制。比如串口有发送完成中断,接收完成中断,这两个中断都由串口控制寄存器的相关中断使能位控制。

2、初始化NVIC_InitTypeDef结构体,配置中断优先级分组,设置抢占优先级和子优先级,使能中断请求。

代码 19 NVIC初始化结构体

 1 typedef
							struct {
				
 2 
							uint8_t NVIC_IRQChannel; // 中断源
			
 3 
							uint8_t NVIC_IRQChannelPreemptionPriority; // 抢占优先级
			
 4 
							uint8_t NVIC_IRQChannelSubPriority; // 子优先级
			
 5     FunctionalState NVIC_IRQChannelCmd;         // 中断使能或者失能
			
 6 } NVIC_InitTypeDef;

有关NVIC初始化结构体的成员我们一一解释下:

1)NVIC_IROChannel:用来设置中断源,不同的中断中断源不一样,且不可写错,即使写错了程序不会报错,只会导致不想要中断。具体的成员配置可参考stm32f4xx.h头文件里面的IRQn_Type结构体定义,这个结构体包含了所有的中断源。

代码 20 IRQn_Type中断源结构体

 1 typedef
							enum IRQn {
				
 2 
							//Cortex-M4 处理器异常编号
			
 3     NonMaskableInt_IRQn      = -14,
				
 4     MemoryManagement_IRQn    = -12,
				
 5     BusFault_IRQn            = -11,
				
 6     UsageFault_IRQn          = -10,
				
 7     SVCall_IRQn              = -5,
				
 8     DebugMonitor_IRQn        = -4,
				
 9     PendSV_IRQn              = -2,
				
10     SysTick_IRQn             = -1,
				
11 
							//STM32 外部中断编号
			
12     WWDG_IRQn                = 0,
				
13     PVD_IRQn                 = 1,
				
14     TAMP_STAMP_IRQn          = 2,
				
15 
			
16 
								// 限于篇幅,中间部分代码省略,具体的可查看库文件stm32f4xx.h
				
17 
			
18     SPI4_IRQn                = 84,
				
19     SPI5_IRQn                = 85,
				
20     SPI6_IRQn                = 86,
				
21     SAI1_IRQn                = 87,
				
22     LTDC_IRQn                = 88,
				
23     LTDC_ER_IRQn             = 89,
				
24     DMA2D_IRQn               = 90
				
25 } IRQn_Type;
				
			

2)NVIC_IRQChannelPreemptionPriority:抢占优先级,具体的值要根据优先级分组来确定,具体参考表格 16 优先级分组真值表 。

3)NVIC_IRQChannelSubPriority:子优先级,具体的值要根据优先级分组来确定,具体参考表格 16 优先级分组真值表 。

4)NVIC_IRQChannelCmd:中断使能(ENABLE)或者失能(DISABLE)。操作的是NVIC_ISER和NVIC_ICER这两个寄存器。

3、编写中断服务函数

在启动文件startup_stm32f429_439xx.s中我们预先为每个中断都写了一个中断服务函数,只是这些中断函数都是为空,为的只是初始化中断向量表。实际的中断服务函数都需要我们重新编写,中断服务函数我们统一写在stm32f4xx_it.c这个库文件中。

关于中断服务函数的函数名必须跟启动文件里面预先设置的一样,如果写错,系统就在中断向量表中找不到中断服务函数的入口,直接跳转到启动文件里面预先写好的空函数,并且在里面无限循环,实现不了中断。

16.5 每课一问

1、库文件core_cm4.h主要实现了什么?回去认真看库的源码

2、库文件mics.c和mics.h主要实现了什么?回去认真看库的源码

3、如果实现一次软件系统复位,具体是操作哪个寄存器的哪个位实现?答案:给内核外设SCB的AIRCR寄存器的位2:SYSRESETREQ 写1即可实现一次系统复位。

STM32固件库详解 emouse原创文章,转载请注明出处http://www.cnblogs.com/emouse/ 应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板,个人录制,欢迎指正。下载地址:http://dl.dbank.com/c0w0ehqynd 2013.3补充在线视频教程 最近考试较多,教材编写暂停了一下,之前写了很多,只是每一章都感觉不是特别完整,最近把... 阅读详情

相关推荐

菜鸟初识STM32固件库文件夹

ARM与TI、ST等公司在嵌入式学习者眼中的上的区别 ARM 是一个做芯片标准的公司,它负责的是芯片内核的架构设计,而 TI,ST 这样的公司,他们并不做标准,他们是芯片公司,他们是根据 ARM 公司提供的芯片内核标准设计自己的芯片。所以,任何一个做 Cortex-M3 芯片,他们的内核结构都是一样的,不同的是他们的存储器容量,片上外设,IO 以及其他模块的区别。所以你会发现,不同公司设计的Co

you1314520me的专栏 9512

stm32F4系列固件库 专治core_cmInstr.h文件丢失

https://pan.baidu.com/s/1DGLik4sLfF8ox7iLnf2O3g core_cmInstr.h文件在STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Include路径下,建议将里面的头文件全部拖到Keil_ARM\ARM\ARMCC\include或其他Keil可以自动找到的地方。 一个文件丢失废了一个下午的时...

LuoMuXiaoX的博客 9819

STM32L151缓慢上断电-电源控制模块的使用(PVD、BOR、POR/PDR)

STM32L151C8T6电源控制模块的使用(PVD、BOR、POR/PDR的理解) 第一次在优快云上写博客,有不妥还请见谅,使用过程中有错误还请大佬指出。 本人在项目过程中应用stm32l151模块,在以前的项目中,对电源的要求并不高,一般都是直接上电直接断电,这样并没有对电源方面考虑很多,但是这次的项目对电源方面提出很多要求,由于本次项目采用的是电容供电,而且电路的供电部分的设计导致了芯片的...

SArRnl的博客 9405

第32章 TIM—高级定时器—零死角玩转STM32-F429系列

第32章     TIM—高级定时器 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege     本章参考资料:《STM32F4xx 中文参考手册》、《STM32F4xx规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。 学

flyleaf91的专栏 7074

volatile的意义及用法(嵌入式STM32)

摘录自:零死角玩转 STM32—基于野火 F429[挑战者]开发板 8.3 实验:构建库函数雏形 虽然库的优点多多,但很多人对库还是很忌惮,因为一开始用库的时候有很多代码, 很多文件,不知道如何入手。不知道您是否认同这么一句话:一切的恐惧都来源于认知的 空缺。我们对库忌惮那是因为我们不知道什么是库,不知道库是怎么实现的。零死角玩转 STM32 —基于野火 F429[挑战者]开发板 第 60 页 共...

光阴的故事 5139

算法之动态规划(DP)求解完全背包问题

算法之动态规划(DP)求解01背包问题 上面这篇文章主要讲解了01背包问题和动态规划算法,如果你不了解动态规划算法,建议先浏览一下这篇文章熟悉一下,因为,本文的算法思想是基于这篇文章的。 1、什么是完全背包问题? **01背包问题:**有一个背包的容积为V,有N个物品,每个物品的体积为v[i],权重为w[i],每个物品只能取1次放入背包中,背包所有物品权重和最大是多少? 完全背包: 有一个背包的容积为V,有N个物品,每个物品的体积为v[i],权重为w[i],每个物品可以取无限次放入背包中,背包所有物品权重和

PRML_MAN的博客 2万+

第30章 ADC—电压采集—零死角玩转STM32-F429系列

第30章 ADC—电压采集 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:《STM32F4xx中文参考手册》ADC章节。 学习本章时,配合《STM32F4xx中文参考手册》ADC章节一起阅读,效果会更佳,特别是涉及到寄存器...

aicai1841的博客 3002

4D毫米波雷达与激光雷达融合评测:3种主流融合框架在极端天气下的性能对比

本文深度评测了4D毫米波雷达与激光雷达在极端天气下的三大融合框架性能,包括前融合、特征级融合和后融合。通过实测数据对比,揭示了多传感器融合在暴雨、浓雾等恶劣环境中的显著优势,为自动驾驶感知系统提供了关键的技术参考和工程实践指南。

weixin_28677005的博客 331

第42章 电源管理—实现低功耗—零死角玩转STM32-F429系列

第42章     电源管理—实现低功耗 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege       本章参考数据:《STM32F4xx 中文参考手册》、《STM32F4xx规格书》、库说明文档《stm32f4xx_dsp_stdperiph_lib_um.chm》

flyleaf91的专栏 1万+

Claude Code+Cursor+Claude 4三剑合璧!5步搞定Magentic-UI的OAuth2.0集成,开发效率飙升500%,新手秒变全栈工程师

本文详细介绍了如何利用Claude Code、Cursor和Claude 4三款AI工具高效集成Magentic-UI的OAuth2.0认证系统。通过5个步骤的实战演练,开发者可快速完成从环境搭建、项目分析、代码生成到前端集成的全过程,显著提升开发效率。文章还提供了JWT令牌管理、安全配置及常见问题解决方案。

weixin_29234509的博客 453

第20章 USART—串口通讯—零死角玩转STM32-F429系列

第20章 USART—串口通讯—零死角玩转STM32-F429系列 第20章 USART—串口通讯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:《STM32F4xx中文参考手册》USART章节。 学习本章时,配合《STM32F4xx中文参考手册》USART章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。 特别说明,本书内容是以ST...

学海无涯的专栏 779

UniApp消息推送进阶:不用插件实现动态语音播报(含保活策略)

本文详细介绍了在UniApp中实现动态语音播报的进阶方案,无需依赖第三方插件。核心采用透传消息传递动态数据,结合本地TTS引擎合成语音,并针对不同安卓厂商提供了深度通道配置与差异化保活策略,有效解决了App退至后台或被清理后语音播报失效的难题。

weixin_29224309的博客 486

第31章 TIM—基本定时器—零死角玩转STM32-F429系列

第31章 TIM—基本定时器 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:《STM32F4xx 中文参考手册》、《STM32F4xx规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm...

aicai1841的博客 1521

NVIDIA Orin AGX开发环境搭建避坑指南:从Ubuntu 22.04到ROS2完整配置流程

本文详细介绍了NVIDIA Orin AGX开发环境搭建的全流程,从Ubuntu 22.04系统安装到ROS2深度优化,涵盖驱动部署、CUDA环境配置、散热与功耗管理等关键步骤。特别针对Orin AGX的特性提供了实用避坑指南和性能优化技巧,帮助开发者高效完成开发环境配置。

weixin_28340315的博客 451

VSS shielding线可以floating吗?

shielding vss不打孔,就相当于dummy metal,如果周围有其他干扰线,他们影响了这段dummy metal,这段dummy metal仍然会对目标线产生干扰,bug的是,工具知道这段dummy是vss,那么计算寄生的时候仍然把它当vss,就有可能噪声没有完全消除,而用户又看不见。而真正接地的线,相当于一直是0,就不会对目标线产生干扰,一般加shield是在route之前,这时候shield能尽量覆盖目标线,等到绕线后再加就会出现shield只覆盖到一部分目标线的情况。

m0_61544122的博客 6634

第18章 SysTick—系统定时器—零死角玩转STM32-F429系列

第18章     SysTick—系统定时器 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege     本章参考资料《 ARM Cortex™-M4F 技术参考手册》-4.5 章节SysTick Timer(STK),和4.48章节SHPRx,其中STK这个章节有Sy

flyleaf91的专栏 2136

Python 爬虫实战:赛事分析平台构建与比赛数据抓取

在体育赛事日益丰富的今天,对比赛数据的收集与分析对于运动员、教练团队以及体育爱好者都具有重要意义。通过构建一个赛事分析平台,我们可以系统地抓取、整理和展示各类比赛数据,为用户提供全面的赛事洞察。本文将深入讲解如何利用 Python 爬虫技术实现这一平台的构建,涵盖从目标网站分析到数据可视化展示的全过程。

u014481728的博客 3180

systick 时间修改_第18章 SysTick—系统定时器—零死角玩转STM32-F429系列

第18章 SysTick—系统定时器全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn野火视频教程优酷观看网址:http://i.youku.com/firege本章参考资料《ARM Cortex™-M4F技术参考手册》-4.5章节SysTick Timer(STK),和4.48章节SHPRx,其中STK这个章节有SysTick的简介和寄存器的详细描述...

weixin_30380991的博客 442

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

第28章 LTDC—液晶显示中英文—零死角玩转STM32-F429系列

第28章     LTDC—液晶显示中英文 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege     本章参考资料:《STM32F4xx 中文参考手册2》、《STM32F4xx规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》

flyleaf91的专栏 3443

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 第15章 RCC—使用HSE/HSI配置时钟—零死角玩转STM32-F429系列
下一篇: 第17章 EXTI—外部中断/事件控制器—零死角玩转STM32-F429系列
0木木0
博客等级 码龄17年 458粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值