历史上的今天
今天是:2024年09月24日(星期二)
2019年09月24日 | STM32库中重要文件说明详解
2019-09-24 来源:eefocus
1.stm32f10x.h:定义系统寄存器的地址以及使用结构体封装。定义声明以及包装内存操作。新版的固件库V3.0以上main等源文件中不再直接包含stm32f10x_conf.h,而是stm32f10x.h。
stm32f10x.h中定义了启动设置,以及所有寄存器宏定义,此文件中需要注意的有:
1、device选择;2、外部时钟频率选择;3、外设宏定义USE_STDPERIPH_DRIVER;
stm32f10x_conf.h中包含了所有外设的头文件,因此任意源文件只要包含了stm32f10x.h,就可以在源文件调用任意外设的函数,而不需要的外设部分,可以在stm32f10x_conf.h中注释掉,项目编译时就不会再编译以及去掉的外设。
2.stm32f10x_it.c和stm32f10x_it.h:所有中断服务函数
中断是嵌入式系统中重要的组成部分,但是在标准C中不包含中断。许多编译开发商在标准C上增加了对中断的支持,提供新的关键字用于标示中断服务程序 (ISR),类似于__interrupt、#program interrupt等。当一个函数被定义为ISR的时候,编译器会自动为该函数增加中断服务程序所需要的中断现场入栈和出栈代码。
中断服务程序需要满足如下要求:
(1)不能返回值;
(2)不能向ISR传递参数;
(3) ISR应该尽可能的短小精悍;
(4) printf(char * lpFormatString,…)函数会带来重入和性能问题,不能在ISR中采用。
参阅网上资料和个人的一些理解
a.为什么不能有返回值?
中断服务函数的调用是硬件级别的,当中断产生,pc指针强制跳转到对应的中断服务函数入口,进入中断具有随机性,并不是某段代码对其进行调用,那么如果有返回值它的返回值返回给谁?显然这个返回值毫无意义,如果有返回值,它必定需要进行压栈操作,这样一来何时出栈怎么出栈将变得无法解决。
b.不能向ISR传递参数?
同理,也是由于这样会破坏栈的原因,因为函数传递参数必定会要求压栈出栈操作,由于进入中断服务函数的随机行,谁给它传递参数都成问题
c.ISR应尽可能的短小精悍?
如果某个中断频繁产生,而它对应的ISR相当的耗时,那么对中断的响应就会无限的延迟,会丢掉很多的中断请求
d.printf(char * lpFormatString,…)函数会带来重入和性能问题,不能在ISR中采用。
这就涉及到一个中断嵌套问题,由于printf之类的glibc函数采用的是缓冲机制,这个缓冲区是共享的,相当于一个全局变量,第一层中断来时,它向缓冲里面写入一些部分内容,恰好这时来了个优先级更高的中断,它同样调用了printf,也向缓冲里面写入一些内容,这样缓冲区的内容就错乱了。
3.stm32f10x_conf.h:所有外设头文件
4.system_stm32f10x.c:设备外设访问层,主要配置时钟频率(设置系统以及总线时钟)
system_stm32f10x.h:配置时钟频率相应的头文件
5.下面是一些启动文件

6.stm32f10x_flash.icf:编译器链接库文件
史海拾趣
|
针对动力线(三相)、讯号线、IO线、特殊电源线简介 共通点: 线材本身就是阻抗体,为何电线会发烫发热?为何会有压降?为何会耗电? 都是电阻造成的。此阻抗来自何处? 1、 自身材料(金、银、铜、铝、锡) 传输系数(导电率)—金最佳、最贵 ...… 查看全部问答> |
|
SynQor公司是美国一家专门从事DC/DC和AC/DC电源模块研发生产的高科技公司,自1999 年推出通用开架式DC/DC模块电源开始,到现在已推出涵盖通讯,工业,医疗,国防,军 工等领域应用的全系列产品。产品系列包括电信级标准DC-DC模块电源(PowerQor, ...… 查看全部问答> |
|
导航电子地图众所周知为GPS导航的核心和根本,导航地图更新和升级乃是导航地图生命线,甚至是GPS导航产品存活的标准。我国GPS导航市场经过几年的发展,现在关于导航地图的升级问题越来越来严重,成为导航电子地图商的一大难题。 &nbs ...… 查看全部问答> |
|
如何实现FAT配置注册表实现自动化分区功能,因为我的EBOOT没有分区功能,但又想实现HIVE-BASE+FAT? 环境:S3C2410+NAND(64)+RAM(64)… 查看全部问答> |
|
调用Datetime.now.tostring() 方法 模拟器上 返回2009-03-16 17:33:11 连接d600调试,datetime.now 返回 2009-03-16 星期一 17:33:11 S900返回2009-03-16 17:33:11 为啥多出个星期一呢。。忘赐教。… 查看全部问答> |
|
关于LQFP144的STM32,可以画成2层板吗? 1。我参考一些开发板,大都是4层的,当然它板子尺寸比较小,而且采用0603封装。 我问做产品的,也是4层,抗干扰。 2。但是我的板子由于接插件较多,所以板子尺寸为200*250mm, 电路也不是很复杂,所 ...… 查看全部问答> |
|
1 购买有关书籍,并到杭州利尔达公司网站和TI网站获取资料, 2FET 如果经济条件不错,可以直接购买。 3FET 自制仿真器FET,首先要到网上找到FET电路图,然后就可以使用画电路板软 件画电 ...… 查看全部问答> |




