历史上的今天
返回首页

历史上的今天

今天是: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创建工程 


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

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

推荐阅读

史海拾趣

芯旺微电子(ChipON)公司的发展小趣事

芯旺微电子自2012年成立以来,始终致力于高可靠性MCU器件的研发设计。公司凭借其自主研发的KungFu内核架构处理器,迅速在汽车级和工业级混合信号MCU领域崭露头角。随着技术的不断积累和市场的深入拓展,芯旺微电子逐渐从一家初创公司发展成为国内车规级MCU市场的领军企业。

Cembre SPA公司的发展小趣事

为了满足全球客户的需求,Cembre SPA制定了国际化战略,开始在全球范围内拓展业务。公司设立了多个海外分支机构,与当地的合作伙伴建立了紧密的合作关系。通过全球化的销售网络和本地化的服务支持,Cembre SPA的产品逐渐打入了国际市场,赢得了全球客户的信赖。

CUI Devices公司的发展小趣事

作为CUI Devices的重要组成部分,其电机品牌在近年来取得了显著的进步。公司的产品线涵盖了电位器、旋转编码器、步进电机、步进伺服电机和伺服电机等多个领域。通过不断的技术创新和市场拓展,CUI Devices的电机产品已经在全球范围内赢得了广泛的声誉和市场份额。

上海如韵(CONSONANCE)公司的发展小趣事

随着电子行业的快速发展,市场竞争日益激烈。为了应对这一挑战,如韵不断调整和优化产品线,加强与国际知名企业的合作,引进先进的技术和设备。同时,公司加大了对研发团队的投入,鼓励员工进行创新实践和技术交流。

在面对行业内的价格战和恶性竞争时,如韵始终坚持产品质量和客户满意度为首要原则。通过不断提升产品质量和服务水平,如韵赢得了客户的信任和口碑。即使在行业面临困境的时期,如韵也凭借着强大的技术实力和良好的市场口碑保持了稳健的发展态势。

BERGQUIST公司的发展小趣事

面对日益严峻的环境问题和可持续发展的挑战,BERGQUIST公司始终坚持绿色发展的理念。公司不断投入研发力量,开发环保型热管理材料和生产工艺。同时,公司还积极推广节能减排技术,努力降低生产过程中的能耗和排放。这些举措不仅符合社会发展趋势,也为公司的可持续发展提供了有力保障。

这五个故事从不同角度展示了BERGQUIST公司在电子行业中的发展历程和成就,体现了公司不断创新、追求卓越的精神。这些事实性的描述旨在客观呈现BERGQUIST公司的历史与现状,不含任何褒贬之意。

Cynergy 3公司的发展小趣事

Cynergy 3公司最初以生产干簧开关起家,位于英国多塞特郡的工厂见证了公司从一个小型制造商到全球领先者的蜕变。通过不断创新和改进,Cynergy 3的干簧继电器产品逐渐获得了市场的认可。公司注重产品质量和可靠性,确保每一个出厂的产品都能达到最高的标准。这种对质量的坚持使得Cynergy 3在竞争激烈的电子行业中脱颖而出。

问答坊 | AI 解惑

ChinaEDA--嵌入式Linux操作系统学习规划

嵌入式Linux操作系统学习规划 ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) (3) ...…

查看全部问答>

wince上如何根据hdc得到HWND? WindowFromDC函数无效

我把pc上的c++程序移植过来.遇到这个问题.…

查看全部问答>

采样

前段时间,我做了一个按键键盘的,原理我懂,对一组I/O口进行扫描后,把相应的键值读取出来就OK了。 但是我现在要对一个红外线式的触摸屏进行采样,利用X、Y方向上密布的红外线矩阵来检测并定位用户的触摸。我不知道,当我检测到有触摸时,我应该 ...…

查看全部问答>

看看这块强大的板子,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 ...…

查看全部问答>

用RT-thread做个测试看看稳定性如何吧

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…

查看全部问答>

msp430g2553 流水灯

收到板子了,查资料学了一个下午,弄出了个流水灯,大概懂了,还有很多细节不太懂。…

查看全部问答>

给AM335x Starter Kit 弄个外壳!

忙了几个小时,开好了LCD,TF,USB的口! 看起来还不错哦! 打开一个应用软件! …

查看全部问答>

锂离子电池介绍

经常逛论坛,遇到需要的资料却无法下载,因为需要所谓的金币之类的,所以我把自己整理的干货分享出来。赚点货。 锂电池简介锂电池可以理解为含有锂元素(包括金属锂、锂合金、锂离子、锂聚合物)的电池,可分为锂金属电池(极少的生产和使用)和锂 ...…

查看全部问答>