历史上的今天
今天是:2025年04月07日(星期一)
2021年04月07日 | STM32工具安装和工程模板的建立
2021-04-07 来源:eefocus
简介:在安装软件和新建工程这个过程中可能会出现各种问题,最好的办法就是百度,说实话,刚开始没有接触STM32,从软件下载到安装再到工程模板的建立我也弄了一天!要有耐心慢慢来!就会发现其实就那么回事!
一、工具安装
1.J-Link驱动的安装下载地址
2. KEIL MDK的安装这个版本更新很快,我用的是4.7版本的,现在5.0版本的都出来,所以可以自己百度去下载,很多地方都能下载到
3.成功安装好J-Link,同时插上J-link下载线后能在我的电脑设备管理器中看到J-Link Driver
4.由于安装大同小异,这里不再赘述。
二、工程模板的建立
准备工作
1.下载ST官方库,我这里是用的3.5版本的
2.STM32使用手册、固件函数手册,开发板原理图文件、以及ST助手
3.网上下载地址很多,这里我把多个文档打包在一起,下载地址:http://pan.baidu.com/s/1kTgI7Y3
下面介绍一下ST库文件的每个文件的内容
解压后你会发现ST库是这样一个文件夹,文件夹名为:STM32F10x_StdPeriph_Lib_V3.5.0,然后里面又包含了4个文件夹,一个网络链接,和一个ST库开发助手。
下面主要介绍四个文件夹:
1.Project文件夹
1.1Example
标准外设库驱动的完整例程
1.2Template
1.2.1RVMDK
KEILRVMDK的项目模板示例
1.2.2EWARMv5
IAREWARMv5的项目模板示例
1.2.3RIDE
2.Libraries文件夹
2.1CMSIS
2.1.1Documentation
CMSIS文档
2.1.2CM3
??CoreSupport
core_cm3.cCMSIS的Cortex-M3内核设备访问层源文件
??DeviceSupport/ST/STM32F10x/startup
larmARM编译器启动文件
startup_stm32f10x_ld.s大容量产品启动文件
startup_stm32f10x_md.s中容量产品启动文件
startup_stm32f10x_hd.s小容量产品启动文件
liarIAR编译器启动文件
同arm
lgccGCC编译器启动文件
同arm
2.2STM32F10x_StdPeriph_Driver
2.2.1Inc
标准外设库驱动头文件
2.2.2Src
标准外设库驱动源文件
3._htmresc文件夹
本文件夹包含了所有的html页面资源
4.Utilities文件夹
4.1STM32_EVAL
本文件夹包含了用于STM3210B-EVAL和STM3210E-EVAL评估板的专用驱动
一些重要固件库文件:
main.c主示例函数体
stm32f10x_conf.h参数配置文件,它要求用户在运行应用程序之前对它进行修改,定义需要与库进行交互的参数。用户可以使用模板使能或者禁能外围模块,并且可以改变外部石英振荡器的数值
stm32f10x_it.h头文件,包括所有中断处理函数原型
stm32f10x_it.c外围模块中断处理函数文件,用户可以引入在应用程序中需要使用的中断处理函数。如果有多个中断请求映射到同一个中断向量,该函数采用轮循环围中断标志的方式来确认中断源。这些函数的名字在固件库中提供。
stm32f10x_lib.h头文件,包括所有外围模块的头文件,这是唯一一个需要在用户应用程序中引用的文件,它作为库的接口。
stm32f10x_lib.c调试模式初始化文件,它包括变量指针的定义,每个指针指向相应外围模块的首地址和当调试模式使能时被调用的函数的定义。该函数初始化已定义的指针。
stm32f10x_map.h该文件实现用于调试,释放模式的内存映射和寄存器物理地址定义。它提供给所有的外围模块。
stm32f10x_type.h普通声明文件。包括所有外围驱动程序使用的普通类型和常量。
stm32f10x_ppp.hPPP外围模块的头文件。包括PPP外围模块函数的定义和在这些函数中使用的变量的定义。
stm32f10x_ppp.cPPP外围模块驱动程序源代码文件,用C语言编写
cortexm3_macro.h头文件
cortexm3_macro.s专用的Cortex-M3指令的指令封装
正式开始建立工程:
1.在桌面上新建一个文件夹,取名STM-Demo,然后在里面新建四个文件夹分别是 CMSIS,FWlib,Listing,Output,USER
2.首先把ST库中的LibrariesSTM32F10x_StdPeriph_DriverInc 和Src文件夹拷贝到你新建的STM-Demo文件夹中的FWlib中
3.把ProjectSTM32F10x_StdPeriph_Template下的stm32f10x_conf.h、main.c、stm32f10x_it.c、stm32f10x_it.h、system_stm32f10x.c拷贝到你新建的文件夹USER目录下
4.把LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm 下的所有文件拷贝到你新建的CMSISstartup,前面现在里面新建好startup文件夹
5.将LibrariesCMSISCM3CoreSupport中的core_cm3.c和core_cm3.h拷贝到你的CMSIS目录下,同时将LibrariesCMSISCM3DeviceSupportSTSTM32F10x中的stm32f10x.h、system_stm32f10x.h、system_stm32f10x.c拷贝打你的CMSIS目录下
6.这样我们的文件建立就完成了,这下我们可以打开MDK新建一个工程了,取名为STM32-Demo,然后添加四个group,分别为STARTCODE,USER,FWlib,CMSIS,在STARTCODE中添加startup_stm32f10x_hd.s,在USER中添加main.c和stm32f10x_it.c,同时在FWlib中添加全部的驱动文件,在CMSIS中添加core_cm3.c、core_cm3.h
添加完成后如下图所示:

然后就是配置MDK选项
最后就是修剪你的main函数了
#include "stm32f10x.h"
int main(void)
{
while(1);
// add your code here ^-^
}
修改成这样就行了!这样一个工程就完成了,保存下来,以后编程的时候直接可用,不用在配置第二遍
同时你往里面添加的用户函数,配置串口什么的都可以保留下来,在main中直接调用免得后面要再次使用时很麻烦。
下一篇:STM32之CAN详解
史海拾趣
|
用pb5.0做了个pc上运行的映像,可以在正常下载和启动 但是在目标pc上插上u盘后没有反应 请问定制映像时还应该添加什么组件,才能让它认出u盘啊 多谢各位啦!!!… 查看全部问答> |
|
最近正在用FE425做一个程序,用并口调试时读不到SD16的转换结果,但是同样的设置(只是把下载器设置改了一下)USB仿真器却可以读出来。为什么呢???… 查看全部问答> |
|
【MSP430共享】军工级设计-ZigBee-VB.Net上位机---原理图,PCB,代码,程序 检测H2S、CO和瓦斯(主要是CH4)。MCU采用MSP430F425,ZigBee采用AT-MR500模块(MG2450芯片)。实现了ZigBee通信,上位机实时气体浓度监控软件。 [ 本帖最后由 mrwtc 于 2011-9-29 10:42 编辑 ]… 查看全部问答> |
|
10路由器,40终端节点的网络,组网一段时间后无法发送向协调器发送数据 协议栈2.5 网络结构 1 协调器,10路由器,40终端节点。 组网后协调器向所有路由器和终端节点广播数据,路由和终端节点收到数据后回复。 组网10分钟左右,路由器和终端节点可以收到协调器广播数据,但是回复数据协调器无法收到 重启协调器,可以 ...… 查看全部问答> |




