STM32在MDK下的一种通用建立库函数工程的方法(标准库)

发布者:czl55555最新更新时间:2019-04-11 来源: eefocus关键字:STM32  MDK  库函数  标准库 手机看文章 扫描二维码
随时随地手机看文章

物料准备


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创建工程 


image


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


image


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


image


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


image


5.设置工程目标名为project,设置组名device,增加文件到device组,文件在libSTM32F10x_StdPeriph_Driversrc下,(全部添加或者选择需要的添加) 


 image 


6.同理,创建user组和cmsis组 


 image 


7.user组添加的文件在user文件夹下 


 image 


8.cmsis组添加的文件分别在 

libCMSISCM3CoreSupport 

libCMSISCM3DeviceSupportSTSTM32F10x 

libCMSISCM3DeviceSupportSTSTM32F10xstartuparm 


 image 


需要注意的是,添加startup文件是需要将查找的文件类型改成(all file),选择适合你器件的启动文件。 


image


全部完成后,点击OK,现在你的工程结构应该是这样的 


 image 


9.增加mian.c文件到工程 


 image 


保存路径记得选择为user 如图完成后,点击add添加 


 image 


10.配置工程选项 


 image 


11.设置输出HEX文件并设置工程输出文件夹,如图。 


 image 


输出文件夹选择成output文件夹 


 image 


12.宏定义设置以及包含路径设置,在C/C++选项卡的Define下增加两条宏定义,用英文输入法下的逗号隔开 

* USE_STDPERIPH_DRIVER (使用库函数中的标准外设资源) 

* STM32F10X_MD (配置当前的器件为中等容量器件) 


 image 


13. 添加包含路径,让编译器能找到你的头文件 


 image 


依次添加如图几条路径,完成后点击OK 


 image 


14.给mian.c添加基本代码 

* stm32f10x.h 是使用STM32库必须包含的文件


#include "stm32f10x.h"

int main()

{

    while(1)

    {


    }

}

image

完成后点击编译连接,看输出窗口,无错误和警告! 

关键字:STM32  MDK  库函数  标准库 引用地址:STM32在MDK下的一种通用建立库函数工程的方法(标准库)

上一篇:stm32—GPIO操作(库函数)
下一篇:STM32定时器中断-库函数

推荐阅读最新更新时间:2024-03-16 16:27

max7219驱动数码管程序(51单片机+STM32 MAX7219数码管程序案例)
1、STM32 硬件SPI max7219 8位数码管显示模块 数码管模块电路图 /***************************************************************** Updated time: 12th,12,2015 Function:通过MAX7219驱动数码管 ******************************************************************/ #include “delay.h” #include “sys.h” #include “usart.h”//串口通信 #define Max7219_pinCLK PAout(
[单片机]
max7219驱动数码管程序(51单片机+<font color='red'>STM32</font> MAX7219数码管程序案例)
STM32-USART HAL库接收任意长度数据详细解析
前言: 最近在调试STM32L152 HAL库串口接收任意长度数据程序,详细解析下接收任意长度数据的方法。 硬件平台:STM32L152 软件平台:keil v5+cubeMX 函数库:HAL库 STM32L152 —USART STM32L152 USART 的HAL库中接收函数: HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); 该函数的参数Size固定,使用时很不方便,只能接收固定长度的数据。 本文详细解析HAL库UASRT接收函数并修改成接收任意长度。P
[单片机]
STM32用keil5调试程序出现 Error:Flash Download Failed-"Cortex-M3"解决方案
一 目的:装好keil MDK 想用 在线调试 二 背景:开发环境 keil MDK 422 三 准备: 1 keil MDK 安装文件夹ARMSegger里是否有三个动态连接表 2 程序编译通过 3 jlink驱动安装好(我安装的是408版本) 四 操作步骤: 1 2 3 5 然后一路OK过去 就可以了。 6 点 进入到在线调试届满 进行调试。 注:如果没有进行第五步(根据芯片选择flash容量)会报错 Error: Flash download failed- Cortex-M3 。 、、、、、、、、、、、、、、、、、、
[单片机]
<font color='red'>STM32</font>用keil5调试程序出现 Error:Flash Download Failed-
STM32基础之SPI
SPI简介 SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。 SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200。 SPI分为主、从两种模式,一个SPI通讯系统需要包含一个(且只能是一个)主设备,一个或多个从设备。SPI接口的读写操作,都是由主设备
[单片机]
<font color='red'>STM32</font>基础之SPI
ulink下在ram中调试stm32的方法
1.在项目文件夹 新建 RAM.ini ---------------------------------------------------------------- FUNC void Setup (void) { SP = _RDWORD(0x20000000); // 堆栈指针 PC = _RDWORD(0x20000004); // PC _WDWORD(0xE000ED08, 0x20000000); // 中断向量偏移地址 } LOAD ./basic.axf INCREMENTAL // Download,.axf 根据自己的文件名和目录修改 Setup();
[单片机]
ulink下在ram中调试<font color='red'>stm32</font>的方法
STM32】EXTI---外部中断/事件控制器
一、EXTI 简介 外部中断/事件控制器(EXTI)管理了控制器的 23个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。 二、EXTI 功能框图 信号线上斜杠并标注 “23” 字样 :表示在控制器内部类似的信号线路有23个。 EXTI 是挂靠在 APB2 总线上的。 三、中断/事件线 EXTI0至 EXTI15用于 GPIO,通过编程控制可以实现任意一个 GPIO作为EXTI 的输入源 SYSCFG 外部中断配置寄存器 1 配置EXTI0 ▲ EXTI0输入源选
[单片机]
【<font color='red'>STM32</font>】EXTI---外部中断/事件控制器
安全启动 - STM32防内外攻击技术
在 STM32 系列里,STM32L0、STM32L4,提供了 Firewall 硬件。Firewall 硬件提供了调用门 Callgate 技术。也就是说, 对于安全敏感的代码与操作,只有一个入口 。任何不通过这个接口,而对受保护的代码与数据进行访问,则会导致系统重启。如同字面意思,Firewall 形成了一个围墙,形成了一个城堡,同时提供一个入口,来提供运行时内部的保密、完整、可靠、可用特性。 通过 Firewall 单一入口的功能,可以形成对外的简单接口。该接口简单,所以安全敏感的操作细节就不会对外泄露。因为外界只能通过接口访问,那么在内部操作之中所使用到的密钥也不会泄露。 STM32 Firewall 通过启动代码激活后,
[单片机]
STM32单片机硬件关键基础精华及注意事项
   STM32简单介绍   一、背景   如果你正为项目的处理器而进行艰难的选择:一方面抱怨16位单片机有限的指令和性能,另一方面又抱怨32位处理器的高成本和高功耗,那么,基于 ARM Cortex-M3内核的STM32系列处理器也许能帮你解决这个问题。使你不必在性能、成本、功耗等因素之间做出取舍和折衷。   即使你还没有看完STM32的产品手册,但对于这样一款融合ARM和ST技术的“新生儿”相信你和我一样不会担心这款针对16位MCU应用领域 的32位处理器的性能,但是从工程的角度来讲,除了芯片本身的性能和成本之外,你或许还会考虑到开发工具的成本和广泛度;存储器的种类、规模、性能和容 量;以及各种软件获得的难易,我相信你看
[单片机]
<font color='red'>STM32</font>单片机硬件关键基础精华及注意事项
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved