历史上的今天
今天是:2025年04月11日(星期五)
2019年04月11日 | STM32在MDK下的一种通用建立库函数工程的方法(标准库)
2019-04-11 来源:eefocus
物料准备
MDK4或者(MDK5+Legacy支持包)
ST官方下载的库文件(STM32F10x_StdPeriph_Lib_V3.5.0)
下载地址 http://pan.baidu.com/s/1cyxwXS
库函数主要文件夹简介
需要的用的库文件都在STM32F10x_StdPeriph_Lib_V3.5.0Libraries文件夹下,它又包含了以下两个文件夹
CMSIS(一些核心和库文件代码,CMSIS主要代码)
CM3DeviceSupportSTSTM32F10x文件夹
system_stm32f10x.c(STM32F10x CMSIS Cortex-M3设备访问层的系统源文件)
system_stm32f10x.h(STM32F10x CMSIS Cortex-M3设备访问层的系统头文件)
stm32f10x.h(设备访问层的头文件))
startup文件夹(汇编代码编写的启动文件,根据不同的编译器,不同容量的型号,启动文件放在不同的文件夹下)
CM3CoreSupport文件夹(在CoreSupport中的是位于CMSIS标准的核内设备函数层 的M3核通用的源文件core_cm3.c和头文件core_cm3.h,它们的作用是为那些采用Cortex-M3核设计SOC的芯片商设计的芯片外设提供一个进入M3内核的接口。)
core_cm3.c
core_cm3.h
STM32F10x_StdPeriph_Driver (外设资源代码,GPIO,TIM,RCC等)
inc(外设驱动的头文件)
src(外设驱动的源文件)
Project文件夹是ST公司编写的工程模板和示例文件
通用建立库函数工程的步骤
1.目录准备
建立projet文件夹存放工程,并在次文件夹下建立一下四个文件夹
* user(存放用户编写的代码)
* lib(存放库文件)
* output(存放工程输出文件)
* mdk(存放mdk创建的工程配置文件)
2.文件准备
将库文件STM32F10x_StdPeriph_Lib_V3.5.0Libraries下的所有文件拷贝到lib文件夹下。
(非必要)将ProjectSTM32F10x_StdPeriph_Template文件夹下的stm32f10x_it.c,stm32f10x_it.h和stm32f10x_conf.h三个文件拷贝到user文件夹下。(这三个文件是用来配置具体使用那些外设资源,和集中写中断函数的文件)
3.建立工程
1.打开keil软件,单击Project菜单下的New uvision project创建工程

2.选择工程配置文件保存的路径mdk

3.选择正确的器件(我这里选择的是STM32f103c8为中等容量产品),然后点击OK

4.管理工程的条目(为了让工程更加整洁)

5.设置工程目标名为project,设置组名device,增加文件到device组,文件在libSTM32F10x_StdPeriph_Driversrc下,(全部添加或者选择需要的添加)
6.同理,创建user组和cmsis组
7.user组添加的文件在user文件夹下
8.cmsis组添加的文件分别在
libCMSISCM3CoreSupport
libCMSISCM3DeviceSupportSTSTM32F10x
libCMSISCM3DeviceSupportSTSTM32F10xstartuparm
需要注意的是,添加startup文件是需要将查找的文件类型改成(all file),选择适合你器件的启动文件。

全部完成后,点击OK,现在你的工程结构应该是这样的
9.增加mian.c文件到工程
保存路径记得选择为user 如图完成后,点击add添加
10.配置工程选项
11.设置输出HEX文件并设置工程输出文件夹,如图。
输出文件夹选择成output文件夹
12.宏定义设置以及包含路径设置,在C/C++选项卡的Define下增加两条宏定义,用英文输入法下的逗号隔开
* USE_STDPERIPH_DRIVER (使用库函数中的标准外设资源)
* STM32F10X_MD (配置当前的器件为中等容量器件)
13. 添加包含路径,让编译器能找到你的头文件
依次添加如图几条路径,完成后点击OK
14.给mian.c添加基本代码
* stm32f10x.h 是使用STM32库必须包含的文件
#include "stm32f10x.h"
int main()
{
while(1)
{
}
}

完成后点击编译连接,看输出窗口,无错误和警告!
下一篇:STM32定时器中断-库函数
史海拾趣
|
嵌入式Linux操作系统学习规划 ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) (3) ...… 查看全部问答> |
|
看看这块强大的板子,C2000,Msp430,stellais arm 通吃 传说中30美金一块,满80美金还免邮费。 Universal Dev Board Accepts MSP430, C2000, or Stellaris MCU Chips sample of a new development board arrived from SchmartBoard, a company that has created a cornucopia of bread ...… 查看全部问答> |
|
8962 ---> ADSL 猫 --> 外网web server,hit8962 web server <-- ADSL猫 -- 外网访问即8962启动后,会定时访问外网的web server,把一些数据传递上去,当然web server也就获得了8962的IP地址。外网的web server拿到ip地址后,就可以给 ...… 查看全部问答> |
|
请问TI-6416如何用指令读取CPU的运行时钟数?谢谢各位大侠:) 请问TI-6416如何用指令读取CPU的运行时钟数呢? 我想让DSP读取下一个接口命令前等待一段时间,小弟急着用,那位大侠帮助下,谢谢… 查看全部问答> |
|
在德州仪器技术社区看到一个互动帖,凡是发表达到30个帖子的论坛用户,将赠与价值达150元TI社区电脑包一个。活动链接:http://www.deyisupport.com/question_answer/f/60/t/1286.aspx… 查看全部问答> |




