STM32固件库V3.5.0使用

合集下载

基于ST官方V3.5固件库的STM32新建工程心得

基于ST官方V3.5固件库的STM32新建工程心得

基于ST官方V3.5固件库的STM32新建工程心得之前笔记有寄存器版本的新建工程步骤,这里介绍下基于ST官方V3.5固件库的STM32新建工程,和寄存器新建工程类似,在其基础上添加库文件。

1、WINSOWS环境下新建工程文件夹test →inc 存放自己的库文件src 存放自己的.C文件out 存放自己的输出文件txt 存放技术文档Libraries 拷贝的官方库文件到自己的工程文件夹下将打包文件夹下system目录下的inc和src文件夹中的3个文件或复制inc 和src到test文件夹下2、打开keil,新建一个工程将工程保存到自己新建的工程文件夹test的根目录选择芯片型号在弹出的是否自动导入启动代码的选项卡中选择否3、点击manage project items图标进行工程组管理test →CMSIS (Cortex微控制器软件接口标准)放启动代码内核文件STD_DRIVER (驱动程序放封装好的函数)SYSTEMMAINSRC在CMSIS工程组下添加以下文件:Libraries/CMSIS/CM3/Core Support/core_cm3.cLibraries/CMSIS/CM3/Devicesupport/ST/STM32F10x/system_stm32f10x.cLibraries/CMSIS/CM3/Devicesupport/ST/STM32F10x/startu p/arm/startup_st m32f10x_hd.s(.s文件可能在目录下被过滤,选择查看.s文件才能找到)至此,管理组CMSIS目录下共有3个文件在STD_DRIVER工程组目录下添加以下文件:Libraries/STM32F10x_StdPeriph_Driver/所有.c文件(这里暂时全部添加,以后可以用到哪个添加哪个)工程组设置完毕,点击确定保存4、从标准库文件夹STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Template/stm32f10x_conf.h 拷贝到新建工程文件夹test的inc文件夹下stm32f10x_it.c 拷贝到新建工程文件夹test的src文件夹下stm32f10x_it.h 拷贝到新建工程文件夹test的inc文件夹下5、点击Opetions for Target图标进行工程配置Device选项卡是芯片,新建工程时候已经选择Target选项卡晶振8.0MHzOutput选项卡Select Folder for Objects选择输出文件路径为创建文件夹test目录下的out,勾选Create HEX File,生成HEX烧写文件Listing选项卡Select Folder for Listing选择列表文件输出路径为test的outC/C++选项卡这里要添加两个宏:STM32F10X_HD,USE_STDPERIPH_DRIVER,指定芯片为大容量产品,使用ST官方的标准固件库Include Paths添加指定所有库文件路径,这里包含了Libraries文件夹下的标准库文件和test文件夹下自己定义的库文件有4个路径:test/inctest\Libraries\CMSIS\CM3\CoreSupporttest\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10xtest\Libraries\STM32F10x_StdPeriph_Driver\incDebug选项卡选择使用Jlink仿真调试Utilities选项卡去掉Use debug Driver选项前的勾选,然后选择Jlink在setting中选择FLASH,我们的芯片是大容量512K,可以选择勾选Reset and Run,烧写玩程序自动复位并运行。

固件库v3.5使用

固件库v3.5使用

固件库v3.5使用首先下载固件库STM32-v3.50移植环境:Keil uVision41.固件库目录介绍。

_htmresc:ST(意法半导体)Logo,包含两张图片。

Libraries:外围设备的驱动文件(STM32F10x_StdPeriph_Driver)和重要的系统文件(CMSIS)。

两个文件夹的内容稍后介绍。

Project:大量的外设例程和各个软件的工程模版,开发的时候可以在原来的基础上加以修改。

其中Kei 模版为MDK-ARMUtilities:评估板相关文件。

stm32f10x_stdperiph_lib_um.chm:由固件库中的注释生成的帮助文档。

2.固件库移植。

(1)建立一个工程文件夹,里面建立相应的目录用来区分文件的类别。

例如:D:\TestLibraries、User、StartUp、CMSIS、Project(2)将固件库中的文件拷贝到上面的相应目录下。

1)直接拷贝固件库中的Libraries放在Test根目录下,并且将CMSIS中剪切出来直接放在Test目录下,直接成为一个文件夹。

并将STM32F10x_StdPeriph_Driver目录下的src和inc文件夹剪切出来放到Libraries目录下。

2)在CMSIS中,将CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup中为启动文件,将其剪切出来放到Test根目录下,单独成文一个文件夹,并根据开发板的型号选择相应的启动文件,确定无误后该文件夹中的其他启动文件就可以直接删除了。

其他的文件夹的其他文件是重要的系统文件,不要进行移动和修改。

例如:本历程使用的是startup_stm32f10x_hd.sSTM32F10x_LD:STM32小容量产品STM32F10x_MD:STM32中容量产品STM32F10x_HD:STM32大容量产品3)User中放置main()函数,里面加上#include “stm32f10x.h”,另外从stm32\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template中拷贝stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h、system_stm32f10x.c四个文件。

STM32固件库v3.5变更指南

STM32固件库v3.5变更指南
v35多出选用以太网媒体界面iwdg无不同pwr无不同rccv20的所有函数均有另增加以下函数
STM32 固件库中文使用手册只到 V2.0,其后未再更新。本文就 V3.5 对 V2.0 的常用部件 变更做简要说明。
பைடு நூலகம்
无不同
ADC_
无不同
BKP_
DMA_
void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DataNumber); V3.5 多出 向通道 x 的 CNDTR 寄存器写入数据传输数量
#endif /* STM32F10X_CL */
#ifdef STM32F10X_CL void RCC_AHBPeriphResetCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); #endif /* STM32F10X_CL */
无不同
void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); V3.5 void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); V3.5 void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); V3.5 void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); V3.5 void TIM1_SetIC1Prescaler(u16 TIM1_IC1Prescaler); V2.0 void TIM1_SetIC2Prescaler(u16 TIM1_IC2Prescaler); V2.0 void TIM1_SetIC3Prescaler(u16 TIM1_IC3Prescaler); V2.0 void TIM1_SetIC4Prescaler(u16 TIM1_IC4Prescaler); V2.0 功能:设置输入捕获预分频值(TIM_ICPSC_DIV1、TIM_ICPSC_DIV2、TIM_ICPSC_DIV4、 TIM_ICPSC_DIV8),分别为输入每 1、2、4 和 8 个边沿触发一次捕获

MDK环境下利用STM32库V3.5创建工程并调试的方法

MDK环境下利用STM32库V3.5创建工程并调试的方法

MDK环境下利用STM32库V3.5创建工程并调试的方法STM32标准外设库及说明1.解压STM32F10x_StdPeriph_Lib_V3.5.0库到硬盘(如F盘)2.库中自带的MDK模板示例1)位置2)工程组织结构3)详细结构3.库文件结构1)Chm中的目录树2)Windows资源管理器中的结构表:STM32F10x_StdPeriph_Lib_V3.5.0文件夹描述标准外设库的第一部分是CMSIS 和STM32F10x_StdPeriph_Driver,是STM32F10x CPU资源的总括:CMSIS是独立于供应商的Cortex-M 处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M 上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间;STM32F10x_StdPeriph_Driver则包括了分别对应包括了所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的易于调用的函数接口,供开发者使用。

Project文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。

Utilities包含了相关评估板的示例程序和驱动函数,供使用官方评估板的开发者使用,很多驱动函数同样可以作为学习的重要参考。

CMSIS中内核设备访问层:(CM3/CoreSupport)core_cm3.h:CMSIS的Cortex-M3内核设备访问层头文件core_cm3.c:CMSIS的Cortex-M3内核设备访问层源文件微控制器外设访问层:(CM3/DeviceSupport/ST/STM32F10X)stm32f10x.h:CMSIS的Cortex-M3 STM32f10xxx微控制器外设访问层头文件system_stm32f10x.h:CMSIS的Cortex-M3 STM32f10xxx微控制器外设访问层头文件system_stm32f10x.c:CMSIS的Cortex-M3 STM32f10xxx微控制器外设访问层源文件STM32F10xxx标准外设库体系结构文件功能说明在实际开发过程中,根据应用程序的需要,可以采取2种方法使用标准外设库(StdPeriph_Lib):(1) 使用外设驱动:这时应用程序开发基于外设驱动的API(应用编程接口)。

STM32固件库V3.5.0的CMSIS文件解析

STM32固件库V3.5.0的CMSIS文件解析

STM32固件库V3.5.0的CMSIS文件解析1.首先选择启动文件:根据自己所用芯片的型号,选择正确的启动文件。

例如选择STM32F107系列的处理器,我们就选择startup_stm32f10x_hd.s。

在这个文件里首先要定义自己堆栈的大小,根据自己的需要确定。

文件中已经定义好了中断向量的位置及堆栈的初始化操作。

/* Reset handler*/Reset_Handler PROCEXPORT Reset_Handler [WEAK]IMPORT __mainIMPORT SystemInitLDR R0, =SystemInitBLX R0LDR R0, =__mainBX R0ENDP通过上面的代码可以看到先执行SystemInit()函数在进入main()函数。

SystemInit()函数在文件system_stm32f10x.c中有定义。

2.stm32f10x.h:这个头文件包含了STM32的大部份定义:①定义了芯片的类型,例如:#define STM32F10X_CL②定义是否包含标准外设库,#defined USE_STDPERIPH_DRIVER③定义外部振荡器频率,#defined HSE_V ALUE上面的三个定义,最好在编译器选项中定义好,这样就不用修改stm32f10x.h文件,最好不要修改这个文件。

④采用枚举的方式定义中断号。

⑤包含core_cm3.h,system_stm32f10x.h。

#include "core_cm3.h"#include "system_stm32f10x.h"#include <stdint.h>⑥定义数据类型,例如:typedef uint32_t u32此外还定义了FlagStatus,ITStatus及ErrorStatus等。

⑦定义外设结构体,地址及用到的常量。

⑧包含stm32f10x_conf.h来配置外设。

关于STM32F103 V3.5.0固件库stm32f10x_conf.h文件

关于STM32F103 V3.5.0固件库stm32f10x_conf.h文件

关于STM32F103 V3.5.0 固件库stm32f10x_conf.h 文件最近项目使用STM32,又重新熟悉了一下STM32 的工程建立与程序设计,总结了一下,发现了之前没有发现的技巧与设置。

关于STM32F103 的V3.5.0固件库,使用起来,挺方便,移植性也不错,当然,如果使用Keil uVesion4 开始的话,首先需要设置好工作环境,才可以正常的编译。

为什么会有:main.c里面怎么来的stm32f10x_conf.h 文件?我搜索了一下代码,发现来自:主头文件#include “stm32f10x.h”若是使用ST 公司为STM32 开发的固件库,就会包括头文件:stm32f10x_conf.h。

打开stm32f10x_conf.h 文件一看,原来,只有:#include “stm32f10x.h”还不够,如果要使用外设什么的,还要在这里打开配置开关,不用的外设可以不加入头文件,看来设计的挺巧妙的。

这样使用外设库时,只要配置好就行了,在main.c 里只使用一个:#include “stm32f10x.h”就可以了。

看来如果不配置好stm32f10x_conf.h,当使用外设如ADC TIM USART 时,根据无法编译通过。

因为没有在项目里加入头文件调用,这里若全不选,根本不能调用固件外设库,即使你把固件库文件加入了工程里。

当然,你可以在main.c 里面全部加入需要的头文件来解决,不过我觉得配置stm32f10x_conf.h 简单方便,有组织。

在这里,加入了需要使用的固件库外设文件,但还不够,还需要设置如下:还加入头文件路径:根据使用的外设固件库配置一下:stm32f10x_conf.h,如果使用systick 系统滴答定时器等,只要在stm32f10x_conf.h 里,取消#include “misc.h”前面的注释,即包含这个misc.h 文件即可,否则,滴答定时器不工作。

通过STM32固件库V3.5.0来建立一个简单的工程模版

通过STM32固件库V3.5.0来建立一个简单的工程模版
打开 Template 文件夹后如下图所示。 然后,将
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_Stdperiph_Examples\GP IO\IOToggle 目录下 main.c,stm32f10x_conf.h,stm32f10x_it.h,stm32f10x_it.c 四 个文件复制到 User 目录下。 至此,文件的操作结束。 重新点击,现在我们要向各个文件组中添加文件。 首先是 User 文件组,点击 Add Files,然后添加 User 文件夹下的 3 个 C 文件,如下图所示。
在这里,选择否(N),等会我们会添加 STM32 固件库中的启动文件。
接下来,我们要建立几个文件组,用来存放不同的源文件,让整个工 程目录结构清晰,点击中的后如下图所示 点击中的可建立一个文件组,可以删除分组,下面我们将建立 User,StdPeriph_Drive,CMSIS,MDK-ARM 四个文件组,User 用来存放与 用户有关的文件,StdPeriph_Drive 用来存放库函数中的外设驱动文件, CMSIS 用来放于 Cortex_M3 内核有关的文件,MDK-ARM 用来存放启动文件, 文件组建立好后,如下图所示。 点击 OK,我们可看到下图所示)与 Template 文件夹 中的文件进行操作。 将固件库文件夹中的 Libraries 文件夹复制到工程目录下(即刚才建 立的 Template 文件夹下),并在 Template 下建立 User 与 Output 两个文件夹, User 用来放与用户代码有关的文件,Output 用来存放编译后产生的中间文件。
通过 STM32 固件库 V3.5.0 来建立一个简单的工程模

首先,打开 Keil,选择 Project-》New uVision Project,选择合适的文 件夹,输入工程名后,点击保存,建立工程。 如下图,在 Template 文件夹下建立工程名为 stm32_demo 的工程。 然后我们选择器件,以 STM32F103RB 为例(STM32 其他系列可类 推),在 STMicroelectronics 栏中选择 STM32F103RB,如下图,在图右侧我 们可看到关于芯片的描述。 点击确定后弹出如下的对话框,问需不需要添加启动文件(此启动文 件为 MDK 自带的),

STM32固件库使用手册_v3.5版本

STM32固件库使用手册_v3.5版本
1.3.1 变量 ................................................................................................................................................ 28 1.3.2 布尔型 ............................................................................................................................................ 28 1.3.3 标志位状态类型 ........................................................................................................................... 29 1.3.4 功能状态类型 ............................................................................................................................... 29 1.3.5 错误状态类型 ............................................................................................................................... 29 1.3.6 外设 .............................................................

Stm32f10x固件库3.5使用指南

Stm32f10x固件库3.5使用指南

stm32f10x_rtc.c stm32f10x_sdio.c stm32f10x_spi.c
RTC 模块的固件函数 SD 接口的固件函数 SPI 接口的固件函数
stm32f10x_tim.c
定时器的固件函数
stm32f10x_usart.c stm32f10x_wwdg.c
USART 的固件函数 窗口开门狗的固件函数
1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
珠联璧合
xlzhu@
STM32F10x 库 3.5 使用指南
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.1 Libraries 目录结构
Libraries 由 CMSIS 标 准 ( Cortex MicroController Software Interface Standard ) 和 STM32F10x_StdPeriph_Driver(标准外设驱动)构成。
FSMC 接口的固件函数
stm32f10x_gpio.c
GPIO 模块的固件函数
stm32f10x_i2c.c stm32f10x_iwdg.c stm32f10x_pwr.c
I2C 模块的固件函数 独立开门狗的固件函数 电源/功耗控制的固件函数
stm32f10x_rcc.c
复位和时钟控制的固件函数
高密度产品,FLASH 大于 128K 互联性高密度产品
startup_stm32f10x_ld.s
低密度产品,FLASH 小于 64K
startup_stm32f10x_ld_vl.s
低密度互联性产品
startup_stm32f10x_md.s startup_stm32f10x_md_vl.s

新建基于STM32固件库V3.5的Keil工程

新建基于STM32固件库V3.5的Keil工程

* @retval None
布谷鸟@UCORTEX
CORTEX 技术之家:
第 6 页,共 7 页
新建基于
STM32 固件库 V3.5 的 Keil 工程
* @param led:指示灯编号 * * */ void LED_Off(uint8_t led) { if(led==0) else{} } /** * @brief 毫秒延时函数 * @param ms: 延时的毫秒数 * @retval None */ void Delay_ms(uint32_t ms) { ms*=12000; while(ms--); } int main(void) { LED_Init(); while (1) { //跑马灯程序 LED_On(0); LED_Off(1); Delay_ms(250); LED_Off(0); LED_On(1); Delay_ms(250); } } 好了,到这里,一个基于 STM32 固件库,实现跑跑马灯功能的工程就完成了,以后所有的项目都可以在这 个工程模版的基础上,进行修改得到。 GPIO_SetBits(GPIOB,GPIO_Pin_5);//点亮 LED0 else if(led==1) GPIO_SetBits(GPIOE,GPIO_Pin_5);//点亮 LED1 @arg 0:LED0 @arg 1:LED1
* @retval None
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO 口速度为 50MHz //根据设定参数初始化 GPIOB.5 //PB.5 输出高 //开漏输出,IO 口速度为 50MHz //PE.5 输出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1-->PE.5 端口配置, 推挽输出

STM32?V3.5固件库下SysTick的使用

STM32?V3.5固件库下SysTick的使用

STM32 V3.5固件库下SysTick的使用SysTick定时器被捆绑在NVIC中,用于产生SysTick异常(异常号:15)。

在以前,操作系统还有所有使用了时基的系统,都必须一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时基。

滴答中断对操作系统尤其重要。

例如,操作系统可以为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。

因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。

Cortex-M3处理器内部包含了一个简单的定时器。

因为所有的CM3芯片都带有这个定时器,软件在不同CM3器件间的移植工作就得以化简。

该定时器的时钟源可以是内部时钟(FCLK,CM3上的自由运行时钟),或者是外部时钟(CM3处理器上的STCLK信号)。

不过,STCLK的具体来源则由芯片设计者决定,因此不同产品之间的时钟频率可能会大不相同。

因此,需要检视芯片的器件手册来决定选择什么作为时钟源。

SysTick定时器能产生中断,CM3为它专门开出一个异常类型,并且在向量表中有它的一席之地。

它使操作系统和其它系统软件在CM3器件间的移植变得简单多了,因为在所有CM3产品间,SysTick 的处理方式都是相同的。

有4个寄存器控制SysTick定时器,如表8.9至表8.12所示。

校准值寄存器提供了这样一个解决方案:它使系统即使在不同的CM3产品上运行,也能产生恒定的SysTick中断频率。

最简单的作法就是:直接把TENMS的值写入重装载寄存器,这样一来,只要没突破系统的“弹性极限”,就能做到每10ms来一次SysTick异常。

如果需要其它的SysTick异常周期,则可以根据TENMS的值加以比例计算。

只不过,在少数情况下,CM3芯片可能无法准确地提供TENMS 的值(如,CM3的校准输入信号被拉低),所以为保险起见,最好在使用TENMS前检查器件的参考手册。

基于固件库V3.5建立STM32工程

基于固件库V3.5建立STM32工程

从零开始基于固件库V3.5建立STM32工程一、建立工程文件夹及其子文件夹,在文件夹内拷贝相应的文件,并整理好。

1、建立工程文件夹,将它命名为GPIO。

2、在GPIO下分别建立Lib、User、List及Obj这四个文件夹。

3、将固件库中Libraries文件夹下的"CMSIS"和"STM32F10x_StdPeriph_Driver"这两个文件夹拷贝至上一步建立的Lib文件夹下。

4、将固件库中Project-->STM32F10x_StdPeriph_Examples-->GPIO-->IOToggle内的全部文件拷贝至第2步建立的User文件夹下。

二、建立KELL工程。

1、Project-->New μVision Project...,将新建立的工程保存在步骤1时建立的GPIO文件夹下,并命名为GPIO。

2、在弹出的Select Device for 'Target1'...对话框中,选择相应的器件,我们选择 STM32F103ZE,确定完成后按"OK"。

3、在弹出的询问是否添加启动代码的对话框中,选"否"。

因为我们使用固件库中的启动代码,需要手动添加。

4、点击右键add group,在Target1下建立四个Groups: User 、Lib 、CMSIS、StartUp。

然后添加文件。

4.1在CMSIS Group下添加如下两个c文件:"\GPIO\Lib\CMSIS\CM3\CoreSupport\core_cm3.c"以及"\GPIO\lib\cmsis\cm3\devicesuport\st\stm32fl0x\system_stm32 f10x.c"。

4.2在User Group下添加c文件:将\GPIO\User目录下的所有C文件添加进来。

STM32V3.5固件库函数调用说明(中文版)

STM32V3.5固件库函数调用说明(中文版)

STM32V3.5固件库函数调⽤说明(中⽂版)⽬录⽬录 (1)1.变量定义 (4)2.GPIO相关函数 (5)2.1.函数GPIO_Init (5)2.2.函数GPIO_SetBits (6)2.3.函数GPIO_ReadInputDataBit (7)2.4.函数GPIO_ReadOutputDataBit (7)2.5.函数GPIO_PinRemapConfig (8)2.6.函数GPIO_Write (9)2.7.函数GPIO_ReadInputData (10)3.RCC相关函数 (10)3.1.函数RCC_APB2PeriphClockCmd (10)3.2.函数RCC_APB1PeriphClockCmd (11)3.3.函数RCC_AHBPeriphClockCmd (12)3.4.函数RCC_ADCCLKConfig (12)4.SysTick函数——SysTick_Config (12)5.NVIC相关函数 (14)5.1.函数NVIC_Init (14)5.2.函数NVIC_PriorityGroupConfig (17)5.3.函数NVIC_SetPriority (17)6.EXTI相关函数 (17)6.1.函数GPIO_EXTILineConfig (17)6.2.函数EXIT_Init (18)6.3.函数EXTI_GetITStatus (19)6.4.函数EXTI_ClearITPendingBit (19)/doc/998fa6c5900ef12d2af90242a8956bec0975a518.html ART相关函数 (20) 7.2.函数USART_Cmd (21)7.3.函数USART_SendData (21)7.4.函数USART_ReceiveData (22)7.5.函数USART_GetFlagStatus (22)8.6.函数USART_ITConfig (23)8.7.函数USART_GetITStatus (23)8.8.函数USART_ClearFlag (24)8.9.函数USART_ClearITPendingBit (24)8.TIM相关函数 (24)8.1.函数TIM_TimeBaseInit (24)8.2.函数TIM_DeInit (26)8.3.函数TIM_ITConfig (26)8.4.函数TIM_Cmd (27)8.5.函数TIM_GetITStatus (28)8.6.函数TIM_ClearITPendingBit (28)8.7.函数TIM_ARRPreloadConfig (29)8.8.函数TIM_OCxInit (29)8.9.函数TIM_OCxPreloadConfig (30)9.I2C相关函数 (31)9.1.函数I2C_Init (31)9.2.函数I2C_CheckEvent (32)9.3.函数I2C_GetFlagStatus (33)9.4.函数I2C_GenerateSTART (34)9.5.函数I2C_ SendData (35)9.6.函数I2C_ ReceiveData (35)9.7.函数I2C_ Send7bitAddress (35)9.8.函数I2C_ GenerateSTOP (36)10.DMA相关函数 (36)10.1.函数DMA_DeInit (36)10.2.函数DMA_Init (37)10.3.函数DMA_Cmd (38)11.ADC相关函数 (39)11.1.函数ADC_Init (39)11.2.函数ADC_RegularChannelConfig (40) 11.3.函数ADC_DMACmd (41)11.4.函数ADC_ResetCalibration (42)11.5.函数ADC_GetResetCalibrationStatus (42) 11.6.函数ADC_StartCalibration (42)11.7.函数ADC_GetCalibrationStatus (42) 11.8.函数ADC_SoftwareStartConvCmd (43) 11.9.函数ADC_TampSensorVrefintCmd (43) 1.变量定义CMSIS IO类型限定词固件库与CMSIS数据类型对⽐注:__IO表⽰告诉编译器这个变量存在RAM中。

用STM32标准外设库StdPeriph_Lib V3.5在Keil上创建一个STM32工程

用STM32标准外设库StdPeriph_Lib V3.5在Keil上创建一个STM32工程

用固件库STM32F10x_StdPeriph_Lib_V3.50在Keil上创建STM32工程STM32标准外设库结构步骤:一、建立一个空的STM32工程,选好芯片类型(STM32F103ZE)。

选好芯片类型后点击“OK”,如果选择自己加载启动文件,则在弹出的对话框中点击“否(N)”。

二、在Project栏中添加子类,并加载STM32固件库中的相关文件到相应的子类中。

1.向User子类中加载文件○1加载自己建立的Application.c(如main.c) ;○2加载stm32f10x_it.c文件路径STM32F10x_StdPeriph_Lib_V3.5.0\Project\Example2\User注:User文件夹中有main.c(自己建立的)及stm32f10x_conf.h、stm32f10x_it.h、stm32f10x_it.c、system_stm32f10x.c(来源于STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template) 2.向Startup子类中加载启动文件startup_stm32f10x_hd.s(STM32F103ZE属于High density devices系列)文件路径STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 3.向StdPeriph_Driver子类中加载misc.c及需要使用的外设的驱动文件stm32f10x_ppp.c文件路径STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src4.向CMSIS子类中加载core_cm3.c及system_stm32f10x.c文件路径STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport及STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x(或User文件夹)成功加载完所有相关文件后Project栏显示结果如下:三、配置路径点击进入界面后配置“Include Paths”,具体情况要以Project栏中的文件为依据。

Keil4下使用STM32库V3.5

Keil4下使用STM32库V3.5

Keil4下使用固件库V3.5关联到建立自己工程第一步:下载一个固件库V3.5第二步:提取压缩包中的Librarie s放到你需要经常存放Keil4工程的地方,方便关联。

例如放在F盘,新建的STM32文件夹下。

第三步:打开Keil4,开始新建工程吧。

1.新建一个存放工程的文件夹,再将新建的工程放到此文件夹下。

2.输入文件名后“保存”3.选取您使用的芯片型号点“OK”,进入下一环节4.接着会出现这样的一个提示框,此处是选择是启动文件,但要使用库V3.5,此处点“否”5.此时Project中出现的是这样6.重点来了:选择工具条上的Manage Components, 下图圈中7.接着我们会在此完成文件添加在”Groups”中新建3个文件夹1.StartUp2.Libraryer用于分类存放相关文件8.选中“Groups”中的“StartUp”文件,然后再在Files框下,点击“Add File”找到目录下刚才存放的Libraries文件并打开,找到路径如下,并选中startup_stm32f10x_md.s"F:\STM32\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\start up\arm\startup_stm32f10x_md.s"同理,我们添加Library文件夹添加:stm32f10x_GPIO.c stm32f10x_rcc.c stm32f10x_tim.c"F:\STM32\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c"最后添加我们的“User”文件夹此处需要添加一个系统文件system_stm32f10x.c 路径如下:"F:\STM32\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c"添加完成这个文件后,可以点“OK”结束了现在我们的Project中有如图文件:9.新建我们的main.c点红框处新建一个Txet1文件,保存为“main.c”记得加“.c”后缀10.右击Project中的“User”出现有图菜单点击“Add Files to Group ‘User’…”将保存的main.c 文件添加到“User”中至此文件添加完成,如果还需要添加文件,可重复步骤8.911.将我们添加的文件与固件库关联起来点击工具条的“Target Options”弹出右图框12.按蓝色标记步骤,一步一步设置第一步:点击“Include Parts”的浏览按钮出现“Folder Setup ”新建链接如右图步骤一直浏览到右图文件夹,并选中“确定”:第二步:重复第一步骤新建找到路径,选中“inc”文件夹至此,关联固件库完成:如果需要添加自己的库可以采用此类方式,将“.h头文件”关联进来13.接下来是让自己的文件夹更合理,分类更细致的步骤第一步:点击“Output”下“SelectFolder Objects”,并新建一个“Output”文件夹双击打开点“OK”完成第二步:点击“Listing”下“Select Folderfor Listing..”后新建一个listing文件夹,双击打开,点“OK”完成14.选择适合自己开发板的下载器第一步:点击“Debug”,出现如右图选择自己的调试器。

stm32ucos详细教程

stm32ucos详细教程
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ ST\STM32F10x\startup\arm 将里面的文件全部复制到我们刚刚建立的 cmsis 文件夹下,这里解释一下,其实我们只用到 arm 目录下面的 startup_stm32f10x_md.s 文件,这个文件是针对中等容量芯片的启动文 件(这就是为什么我们一开始不自动加启动文件的原因)。其他两个主
void led_init(void) { GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能 PA 端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 端口配置
3. 在 ucosii 文件下建立六个文件夹:○1 hardware(用来存放你以后建立的 外围硬件源文件还有头文件);○2 output(用来存放工程编译后的文件); ○3 stm32lib(用来存放 stm32 V3.5 库的文件);○4 ucosii(用来存放 ucosii 移 植 的 文 件 ) ; ○5 user( 用 来 存 放 你 的 工 程 还 有 main 文 件 ) 。
1.我使用的是 uCOS 的 2.86 版本,下载后可以看到 Micrium 文件夹,里面含 有三个文件夹:
文件名
说明
AppNotes
包含 ucosii 的说明文件,其中 Micrium\AppNotes\AN1xxx-RTOS\AN1018-uCOS-IICortex-M3\ AN-1018.pdf 是很重要的。这个文件对 uc/os 在 M3 内核移植过程中的代码做了详细的说 明。

stm32 固件库3.5的移植

stm32 固件库3.5的移植

stm32 固件库3.5的移植昨天试了试使用STM32固件库3.5,以前都是使用开发板里移植好的例程,所以整了一天才整明白,在这里给大家分享下我的经验,我还是个菜鸟,有说错的地方请大家指出来哦。

我使用的是keil编译器。

首先建立一个工程,在这个工程中加如4个组,我的4个组名分别是 user, startup, CMSIS, stdperiph_driver。

user这个组里主要添加有关你自己工程的函数,有main.c , stm32f10x_conf.h(包含工程中要使用到的外设) , stm32f10x_it.c(中断函数) 。

CMSIS中有core_cm3.c ,system_stm32f10x.c 。

这两个文件都是下载的库压缩包里的,所在目录为STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 。

startup 文件夹里存放stm32 的启动文件,在STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\S TM32F10x\startup\arm 这个文件夹下,因为我使用的芯片是stm32f107VC 是互联型芯片,所以我选择的启动文件是startup_stm32f10x_cl.s 这是个汇编文件。

stdperiph_driver 中放的就是库函数了,在STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\s rc 在这个文件里,把这个文件里的所有*.c文件都添加进去就行了。

对了这些文件的添加只需要添加*.c文件就行了,*.h文件在后面的编译会由编译器自动加上的,*.h的添加在后面会讲到的。

然后就是需要更改的文件了。

这里的许多文件是只读的,要修改的时候得先在文件属性里去掉只读。

STM32固件库V3.5.0使用

STM32固件库V3.5.0使用

1:下载STM32_V3.5的固件库去论坛上找,很多2:准备Keil uVision4软件,并安装到电脑上。

3:不要带板凳了,带上你的脑袋就行,因为板凳不会思考。

开始:1:首先解压缩下载的固件库(保留一个备份,你懂的)里面有,_htmresc:ST的logo完全无用,不用理会,Libraries:比较重要的文件包含STM32的系统文件和大量头文件,也就是库文件了。

Project:包含大量外设的例程,和各个软件版本的评估版工程模板。

KEIL对应的就是MDK-ARM文件下的工程模板。

你也可以利用这个工程模板来修改,得到你自己的工程模块,本文不用此法。

Utilities:就是评估版的相关文件:本文也不会用到,无视既可。

这四个文件,(先去掉文件的只读属性吧,相信你会的)2:安照一般的方法,建立工程模板先建立一些文件夹,比如工程模板要建在D盘,下面的D:\STM32\PRO1(项目名字,自己随便定)再该文件夹下面新建以下文件夹Libraries:直接复制上述的的Libraries文件夹,把其中的CMSIS剪切出来,放到PRO1目录下,直接成为另一个文件夹。

另外把STM32F10x_StdPeriph_Driver下的inc和src文件夹剪切出来,放在Libraries目录下,STM32F10x_StdPeriph_Driver文件夹就可以删除了。

会发现里面就只剩下头文件了。

CMSIS:就是从上面粘贴来的。

在CMSIS\CM3\DeviceSupport\ST\STM32F10x目录下直接将Startup文件剪切出来,放在Libraries目录下,其他的不需要动。

里面存放的就是重要的系统文件,先不要理会是什么作用吧,慢慢就明白了。

Startup就是从上面粘贴来的。

我们要用的比如是:STM32F103VC,只要把startup\arm 目录下的startup_stm32f10x_hd.s文件剪切出来,放到Startup下面就好。

STM32固件库V3.5在Keil MDK环境下使用方法

STM32固件库V3.5在Keil MDK环境下使用方法

STM32 固件库V3.5 在Keil MDK 环境下使用方法
简介写这篇教程主要是和大家分享使用STM32 的基本方法,也是给自己
学习过程的总结、记录和备忘,避免重复学习之前明白但又忘记的知识和操作。

我现在也是刚开始接触学习STM32,我是在STM32 的固件库V3 基础上进行
学习。

在这里我和大家分享一下使用V3.x 库的方法,希望大家喜欢,如有错
误请指出。

这篇教程分以下几个方面,一:建立工程,设置工程属性。

二:建立条理清
晰的GROUP;三:使用JLINK 仿真调试。

下面就分别逐个说明。

一、新建MDK 工程
1、首先,打开MDK 软件,再点击Project->New uVision Project,如下图所示:
弹出如下对话框:
新建一个文件夹MDK 工程,然后把工程名字设为test,点击保存。

弹出选
择器件的对话框,
我们使用的是stm32 单片机,所以选择STMicroelectronics 下面的器件,如STM32F107VCT6,如图所示:
点击OK,MDK 会弹出一个对话框,如图所示:问是否加载启动代码到当前
工程下面,
如果选择是,则这个启动代码是旧版本库的启动代码,新版本的启动代码和
这个不同,需要自己添加。

在这里我们使用的是新版本的库,所以点击否,自
己添加启动代码。

启动代码是一段和硬件相关的汇编代码,是必不可少的!这个代码具体如何
工作,感兴趣可以研究一下,现在可以不必关心它。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档