STM32 标准库V3.5+MDK 模板
入门STM32 最头疼的就是开发环境了,从网上买的各种开发板,红牛,神舟还有“外星科技”虽然提供了模板,但是里面杂乱无章完全不知那帮做板子的是怎么想的。今天升级到V3.50 正好扔掉那些开发板商家提供的模板 自己搭建开发环境。
MDK官网下载地址 :https://www.keil.com/arm/demo/eval/arm.htm
stm32 V3.5.0 库文件官网下载:stm32f10x_stdperiph_lib.zip

这是整个STM32F10x标准库的结构,图上是V3.0.0 实际结构上是和3.5.0一样的
_htmresc: chm帮助文档使用的ST LOGO 完全无用 删除
Libraries: 顾名思义就是各种库文件,下面来仔细研究一下:

CMSIS, 全称:Cortex Microcontroller Software Interface Standard。包含2个文件Core_cm3.c和 Core_cm3.h。
先看Core_cm3.h:
1.调用了stdint.h。定义了各种数据类型
2.指定了寄存器的访问权限
_I ->只读权限
_O -> 只写权限
_IO -> 读写权限
3.对CM3寄存器仅需定义。
4.对CM3硬件内存地址进行映射。
5.对HAL(硬件抽象层)寄存器进行定义。
6.调试相关。
然后是stm32f10x.h:
(DPAL:设备外设访问层):包括了STM32f10x全系列处理器所有的外设寄存器定义,位定义和不同容量的芯片内存映射。
作用:配置目标芯片,是否使用库文件,特殊参数如HSE的频率,定义数据类型,结构体和外设的内存映射,中断异常的定义。
注意:
1 * - To use or not the peripheral抯 drivers in application code(i.e. 2 * code will be based on direct access to peripheral抯 registers 3 * rather than drivers API), this option is controlled by 4 * "#define USE_STDPERIPH_DRIVER"
#ifdef USE_STDPERIPH_DRIVER #include "stm32f10x_conf.h" #endif
stm32f10x.h 第8296行。如果需要使用库文件请加上
#define USE_STDPERIPH_DRIVER
system_stm32f10x.h 和 system_stm32f10x.c
提供2个函数和一个全局变量,可以用于设置时钟等,不过我更习惯在程序中更改,所以我也不使用。
startup文件夹:
提供STM32启动时芯片复位代码,初始化堆栈指针SP,程序指针PC,设置中断向量,配置系统时钟以及系统启动完毕运行主程序。使用时注意不同容量的芯片。
标准外设库:
有inc和src2个文件夹,inc=include,src就是source。
---------------------------------------------------------------------------------------------------------
下面来介绍一下如何建立一个工程模板。
1。建立工程文件夹:

这是我的工程文件夹
2.在MDK建立自己的工程,这一步网上教程很多,选对路径和芯片型号即可
3.设置workspace

具体使用请参考baidu文库:
http://wenku.baidu.com/view/884ad1f0f61fb7360b4c6597.html
然后编译 成功~ 一个MDK4.12+STM32F10x_StdPeriphLib V3.5.0就搞定了
切记,不要重复加入文件,之前不小心把2个STM32F10X.h加入工程了,MDK之间死掉然后必须从0开始建立工程。。。
浙公网安备 33010602011771号