Stmfx固件库使用指南资料下载.pdf
- 文档编号:5983544
- 上传时间:2023-05-05
- 格式:PDF
- 页数:28
- 大小:466.43KB
Stmfx固件库使用指南资料下载.pdf
《Stmfx固件库使用指南资料下载.pdf》由会员分享,可在线阅读,更多相关《Stmfx固件库使用指南资料下载.pdf(28页珍藏版)》请在冰点文库上搜索。
CM3由CoreSupport(内核函数)和DeviceSupport(外设函数接口)组成。
STM32F10x_StdPeriph_Driver由外设头文件inc和外设功能函数库src构成。
3.23.23.23.2ProjectProjectProjectProject目录结构目录结构工程Project由STM32F10x_StdPeriph_Examples(各外设示例程序)和STM32F10x_StdPeriph_Template(外设模板)构成。
在STM32F10x_StdPeriph_Template中有如下文件夹和文件:
stm32f10x_it.c和stm32f10x_it.h分别是中断服务函数及其头文件,stm32f10x_conf.h是库配置头文件。
使用了何种外设,在该文件中把该外设头文件包含进来。
4444CMSISCMSISCMSISCMSIS标准标准CMSIS由内核函数CoreSupport(内核函数)和DeviceSupport(外设函数接口)组成。
4.14.14.14.1CoreSupportCoreSupportCoreSupportCoreSupportCoreSupport是内核函数文件夹,存放内核函数core_cm3.c和内核函数头文件STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合3core_cm3.h。
它们主要对内核寄存器进行定义并调用了数据类型头文件stdint.h。
4.24.24.24.2DeviceSupportDeviceSupportDeviceSupportDeviceSupportDeviceSupport包括startup启动文件、stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h和Release_Notes。
4.2.14.2.14.2.14.2.1系统函数系统函数system_stm32f10x.csystem_stm32f10x.csystem_stm32f10x.csystem_stm32f10x.c和和system_stm32f10x.hsystem_stm32f10x.hsystem_stm32f10x.hsystem_stm32f10x.hsystem_stm32f10x.c包含了系统初始化函数SystemInit()、系统时钟设置函数SetSysClock()和系统时钟更新函数SystemCoreClockUpdate。
4.2.24.2.24.2.24.2.2stm32f10x.hstm32f10x.hstm32f10x.hstm32f10x.hstm32f10x.h文件包含了stdint.h、core_cm3.h、system_stm32f10x.h和stm32f10x_conf.h头文件,主要实现了以下功能:
结构体方式的外设寄存器定义不同容量芯片的内存映射外设功能函数头文件的包含4.2.34.2.34.2.34.2.3StartupStartupStartupStartup文件文件Startup文件夹下有各种开发环境的启动文件。
DeviceSupportSTSTM32F10xstartup目录下存放MDK开发环境的不同容量的芯片的启动文件。
启动文件用途startup_stm32f10x_cl.s互联性产品startup_stm32f10x_hd.s高密度产品,FLASH大于128Kstartup_stm32f10x_hd_vl.s互联性高密度产品startup_stm32f10x_ld.s低密度产品,FLASH小于64Kstartup_stm32f10x_ld_vl.s低密度互联性产品startup_stm32f10x_md.s中等密度产品,FLASH=64Kor128Kstartup_stm32f10x_md_vl.s中等密度互联性产品startup_stm32f10x_xl.s超密度产品启动文件主要完成堆栈初始化,设置中断向量,系统初始化等必需的初始化工作。
库3.5显著的变化是在启动文件中增加了调用系统初始化函数SystemInitSystemInitSystemInitSystemInit()。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合45555STM32F10x_StdPeriph_DriverSTM32F10x_StdPeriph_DriverSTM32F10x_StdPeriph_DriverSTM32F10x_StdPeriph_Driver标准外设驱动STM32F10x_StdPeriph_Driver由外设功能函数src、外设功能函数头文件inc和发布说明Release_Notes构成。
主要外设功能函数见表功能函数文件功能misc.c辅助功能的固件函数stm32f10x_adc.cADC模块的固件函数stm32f10x_bkp.c备份寄存器的固件函数stm32f10x_can.cCAN模块的固件函数stm32f10x_cec.cCEC模块的固件函数stm32f10x_crc.cCRC模块的固件函数stm32f10x_dac.cDAC模块的固件函数stm32f10x_dbgmcu.c调试的固件函数stm32f10x_dma.cDMA模块的固件函数stm32f10x_exti.c外部中断模块的固件函数stm32f10x_flash.cFLASH的固件函数stm32f10x_fsmc.cFSMC接口的固件函数stm32f10x_gpio.cGPIO模块的固件函数stm32f10x_i2c.cI2C模块的固件函数stm32f10x_iwdg.c独立开门狗的固件函数stm32f10x_pwr.c电源/功耗控制的固件函数stm32f10x_rcc.c复位和时钟控制的固件函数stm32f10x_rtc.cRTC模块的固件函数stm32f10x_sdio.cSD接口的固件函数stm32f10x_spi.cSPI接口的固件函数stm32f10x_tim.c定时器的固件函数stm32f10x_usart.cUSART的固件函数stm32f10x_wwdg.c窗口开门狗的固件函数STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合56666库开发流程库开发流程6.16.16.16.1创建工程目录和创建工程目录和ReadmeReadmeReadmeReadme文件文件在工程文件目录(如LED)下创建FWlib、CMSIS、User和Output文件夹,并在工程文件夹下创建Readme.txt文件。
千万别把什么文件都丢一个文件夹,那样不便于维护,可读性很差。
FWlib用来存放外设功能函数及其头文件CMSIS存放内核功能函数及头文件和启动文件User存放个人文件文Output存放各种输出文件6.26.26.26.2拷贝库拷贝库3.53.53.53.5中文件到工程文件夹中中文件到工程文件夹中
(1)把LibrariesCMSISCM3CoreSupport下的core_cm3.c和core_cm3.h拷贝到CMSIS文件夹下。
(2)把LibrariesCMSISCM3DeviceSupportSTSTM32F10x下的startup文件夹和stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h文件拷贝到CMSIS文件夹下。
(3)把LibrariesSTM32F10x_StdPeriph_Driver下的inc和src文件夹拷贝到FWlib夹下。
(4)把ProjectSTM32F10x_StdPeriph_Template中的stm32f10x_conf.h拷贝到FWlib下的inc文件夹下。
(5)把ProjectSTM32F10x_StdPeriph_Template中的stm32f10x_it.c和stm32f10x_it.h拷贝到User下。
这样的话src存放的都是外围功能函数;
inc存放的都是外围功能函数头文件和stm32f10x_conf.h文件。
那样的话思路非常清晰,使用了什么外设,只要在inc目录下的stm32f10x_conf.h文件中设置。
6.36.36.36.3创建创建MDKMDKMDKMDK工程工程6.3.16.3.16.3.16.3.1启动启动KeilKeilKeilKeiluVisionuVisionuVisionuVision软件软件双击KeiluVision,启动软件。
6.3.26.3.26.3.26.3.2创建空工程创建空工程点击工具栏上的Project,选择NewVisionProjectSTM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合6新建led工程,保存到User目录下。
6.3.36.3.36.3.36.3.3选择目标器件选择目标器件选择目标器件,点OK确定。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合76.3.46.3.46.3.46.3.4添加启动文件添加启动文件出现是否添加启动文件到工程中对话框,选择否。
如果你使用开发环境自带的启动代码的话,就选择是,以后就不用添加了。
6.3.56.3.56.3.56.3.5添加目标分组添加目标分组
(1)右击Target1,选择ManageComponents
(2)在Group下添加FWlib、CMSIS、User、Output和Readme组。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合86.3.66.3.66.3.66.3.6给各组添加文件给各组添加文件
(1)在startup组中添加CMSIS文件夹中的startup下的startup_stm32f10x_md.s启动文件。
启动代码要根据你选择的芯片进行选择。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合9
(2)在CMSIS组中添加CMSIS目录下的core_cm3.c和system_stm32f10x.c文件。
(3)在FWlib中添加目录FWlib下的所有src文件STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合106.3.76.3.76.3.76.3.7编写用户源程序编写用户源程序
(1)点File选择New创建新文件
(2)输入代码,保存到User目录下。
(3)右击Target1下的User组,选择AddFiletoGroupUser,选择User目录下文件后,点Add添加。
如果使用了外部中断,那么需要添加stm32f10x_it.c文件到User组下。
在编写中断函数时,中断服务程序名必须和启动文件中的中断向量名一样。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合11(4)同样把Readme.txt文件添加到Readme中,Readme.txt文件主要是对实验工程进行说明。
6.46.46.46.4目标选项设置目标选项设置右击Target1,选择OptionsforTargetTarget1,对各目标选项进行设置。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合126.4.16.4.16.4.16.4.1TargetTargetTargetTarget选项选项点Target,在Xtal中填入晶振频率。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合136.4.26.4.26.4.26.4.2OutputOutputOutputOutput
(1)点Output,勾选CreateHEXFile选项。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合14
(2)点SelectFolderforObjects,选择Output目录作为Output文件存放路径,点OK完成。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合156.4.36.4.36.4.36.4.3ListingListingListingListing点Listing选项,点SelectFolderforObjects,选择Output目录作为Listing文件存放路径,点OK完成。
6.4.46.4.46.4.46.4.4C/C+C/C+C/C+C/C+
(1)选择C/C+页,在Define中输入“STM32F10X_MD,USE_STDPERIPH_DRIVER”,进行宏定义。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合16
(2)点击IncludePaths后按钮,选择库搜索路径。
设置完成后,见下图。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合176.4.56.4.56.4.56.4.5DebugDebugDebugDebug如果使用硬件调试,那么连好开发板和JLINK后在Debug选项中进行设置。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合18
(1)选择Cortex-M3JLINK仿真器。
(2)点Setting,自动检测到JLINK的序列号,对Port和MaxClock进行设置。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合19如果采用的Port是JTAG模式,那么选择JTAG,否则选择SW。
(3)点FlashDownload页,点Add添加编程算法。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合20(4)选择目标器件的编程算法后,点Add。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合21(5)设置后点OK,如图6.4.66.4.66.4.66.4.6UtilitiesUtilitiesUtilitiesUtilities选择目标FLASH编程驱动为Cortex-M3J-LINK,其余和Debug一样设置。
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合22设置完后,慢慢进行自己的调试之旅吧,祝君好运!
7777用户源代码设计用户源代码设计用户源代码设计包括模块功能函数和头文件及其main函数。
这里以跑马灯实验为例进行讲解。
7.17.17.17.1Delay.cDelay.cDelay.cDelay.c函数及头文件设计函数及头文件设计7.1.17.1.17.1.17.1.1Delay.cDelay.cDelay.cDelay.c因为此函数与外设无关,所以没包含头文件。
/*文件:
delay.c描述:
延时函数设计:
珠联璧合日期:
2012-09-29邮箱:
声明:
版权所有,引用请注明出处!
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合23*/#ifndefSYSTEMCLK_FREQ#defineSYSTEMCLK_FREQ72#endif/*函数:
voidDelay_Us()参数:
unsignedshort返回:
无功能:
微秒延时*/voidDelay_Us(unsignedshorttime)unsignedshorti;
for(;
time0;
time-)for(i=0;
i0;
t-)Delay_Us(1000);
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合24/*ENDOFFILE*/7.1.27.1.27.1.27.1.2Delay.hDelay.hDelay.hDelay.h/*文件:
delay.h描述:
延时函数原型声明设计:
*/#ifndef_DELAY_H#define_DELAY_H/原型声明externvoidDelay_Us(unsignedshorttime);
externvoidDelay_Ms(unsignedshortt);
#endif/*ENDOFFILE*/用#ifndef防止重复包含。
externvoidDelay_Us(unsignedshorttime);
是外部函数声明,在main中调用时,只要用#include把Delay.h头文件包含进去。
结构化模块设计一般对每个模块采用2个文件的形式,一个文件是模块功能函数,一个是模块头文件。
这样方便维护和调用。
7.27.27.27.2led.cled.cled.cled.c和和led.hled.hled.hled.h7.2.17.2.17.2.17.2.1led.cled.cled.cled.c/*文件:
led.cSTM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合25描述:
LED功能函数设计:
*/#includestm32f10x.h#includedelay.h/*函数:
voidLED_Init(void)参数:
无返回:
LED初始化*/voidLED_Init(void)/管脚对应GPIO:
PA8-LED0,PD2-LED1/设置LED0管脚属性GPIO_InitTypeDefGPIOA_InitStruct;
GPIO_InitTypeDefGPIOD_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIOA_InitStruct.GPIO_Pin=GPIO_Pin_8;
GPIOA_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIOA_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOA,&
GPIOA_InitStruct);
/设置LED1管脚属性RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
STM32F10xSTM32F10xSTM32F10xSTM32F10x库库3.53.53.53.5使用指南使用指南珠联璧合珠联璧合珠联璧合珠联璧合26GPIOD_I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Stmfx 固件库 使用指南