历史上的今天
返回首页

历史上的今天

今天是:2025年07月26日(星期六)

正在发生

2019年07月26日 | keil5新建STM32工程总结--库函数版本

2019-07-26 来源:eefocus

最近在重新系统学习嵌入式软件编程,先复习以前学过的STM32,今后会发一些自己的学习心得跟大家分享,欢迎大家一起讨论,一起来找茬


1、文件构成:库函数版本工程一共有四个文件夹:CORE、OBJ、STM32F10x_FWLib和USER

① USER用于存放工程文件(最好在新建工程之前创建):

在Kelil5中点击:

project -> New μVision Project后选择 USER文件夹作为工程文件路径

里面包含两个文件夹:Listings 和 Objects,以及两个文件.uvprojx和uvoptx

Listings 和 Objects文件夹是 MDK 自动生成的文件夹,用于存放编译过程产生的中间文件;.uvprojx是工程文件


此外需要将以下文件复制到USER文件夹中

stm32f10x.h,

system_stm32f10x.c,

system_stm32f10x.h

main.c,

stm32f10x_conf.h,

stm32f10x_it.c,

stm32f10x_it.h


③STM32F10x_FWLib用于存放 ST 官方提供的库函数源码文件

需要把STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver文件夹中的src和inc文件夹复制到此文件夹中


②CORE用于存放启动文件

包含三个文件:core_cm3.c、core_cm3.h和startup_stm32f10x_hd.s

core_cm3.c、core_cm3.h是cortex_M3的启动文件

startup_stm32f10x_hd.s是芯片启动文件,由芯片型号、flash大小决定


④OBJ用于存放编译过程文件和hex文件

通过点击option for target(俗称魔术棒),在output选项中的Select folder for objects选择此文件作为输出文件夹


2、在keil5中把以上文件添加到工程中

右击工程选择Manage Project Items,在文件工程项目中创建相关USER、CORE、FWLIB、OBJ四个项目,并把相应文件夹中的.c和.s文件添加到项目中

注:keil5默认是添加C文件,但CORE项目需包含.c和.s文件


3、头文件路径

点击魔术棒,在C/C++选项卡中点击Include Paths,添加包含.h文件的文件夹作为头文件目录;路径要包含到最后一层路径


4、宏定义

点击魔术棒,在C/C++选项卡中添加 USE_STDPERIPH_DRIVER **(若已经选择芯片型号,就不能添加STM32F10X_HD,否则报错 error: #67: expected a “}”)**作为标准宏定义,


推荐阅读

史海拾趣

Bedford Opto公司的发展小趣事

Bedford Opto公司在成立初期,面临着激烈的市场竞争和技术瓶颈。然而,公司的研发团队通过不懈努力,成功开发出一款具有革命性的光电传感器。这款产品不仅提高了信号传输的效率,还降低了能耗,迅速在市场上获得了认可。Bedford Opto公司因此逐渐在电子行业中崭露头角。

Hasco Relays and Electronics International Corp公司的发展小趣事

Harris公司最初成立于1890年代,起初以无线电通信技术为核心业务。在早期,公司凭借其创新的无线电通信技术,在通信领域迅速崭露头角。这一时期,Harris不仅为军事领域提供了关键的通信解决方案,还逐步拓展到商业和民用市场,为当时的电话、电报等通信方式带来了革命性的变化。通过不断的技术研发和产品创新,Harris逐渐奠定了其在电子行业的重要地位。

Data Delay Devices公司的发展小趣事

在竞争激烈的电子行业中,质量管理是企业生存和发展的关键。DDD公司高度重视产品质量管理,建立了完善的质量管理体系和检测机制。公司从原材料采购、生产过程到成品检验都实行严格的质量控制,确保每一件产品都符合客户的要求和行业标准。这种对质量的执着追求使得DDD公司的产品在市场上赢得了良好的口碑和信誉。

DS-IMP公司的发展小趣事

在电子行业,供应链管理是企业发展的关键因素之一。DS-IMP公司深知这一点,因此在发展过程中不断优化供应链管理。公司建立了完善的供应链体系,与供应商和客户建立了长期稳定的合作关系。同时,公司还引入了先进的供应链管理软件和技术手段,实现了对供应链的实时监控和精细化管理。这些措施不仅提高了公司的运营效率,还降低了成本风险,为公司的发展提供了有力保障。

bb-smartworx公司的发展小趣事

DS-IMP公司非常重视人才培养和团队建设。公司建立了完善的人才培养机制,为员工提供丰富的培训和学习机会。同时,公司还注重团队建设和文化建设,通过组织各种团队活动和文化建设活动,增强员工的凝聚力和归属感。这些努力使得公司拥有一支高素质、专业化的团队,为公司的发展提供了坚实的人才保障。

Advanced Milliwave Laboratories Inc公司的发展小趣事

AML深知技术创新是企业发展的核心动力。因此,公司始终坚持自主研发和技术创新,不断推出新的微波产品和技术。这些新产品不仅具有更高的性能和更广泛的应用范围,还进一步提升了AML在微波技术领域的竞争力。同时,AML还注重与高校和研究机构的合作,共同开展技术研发和人才培养,为公司的长远发展提供了有力支持。

问答坊 | AI 解惑

谁有 ACD资料

谁有ACD 资料啊…

查看全部问答>

IGBT短路失效机理

IGBT负载短路下的几种后果 (1) 超过热极限:半导体的本征温度极限为250℃,当结温超过本征温度,器件将丧失阻断能力,IGBT负载短路时,由于短路电流时结温升高,一旦超过其热极限时,门级保护也相应失效. (2) 电流擎住效应:正常工作电流下,IGBT由于薄 ...…

查看全部问答>

无线信号 高手进

我在这招了半天也莫有找到我要的答案,发个帖看看有没有高手给我支支招。 关于无线信号如何检测的问题,方法越具体越多越好。。。用示波器的话说明具体的用法。我琢磨很久了,奈何能力有限。。。…

查看全部问答>

proteus 的键盘在哪

单个的键(不是开关) 和 矩阵键盘…

查看全部问答>

条码手持终端应用程序开发!!!

条码手持终端应用程序开发!!! 本人在条码行业有多年的工作经验,一直从事条码手持终端应用程序的开发 开发过多种设备: CASIO DT900,DT300,DTX10; Cipher 711 ; SYMBOL MC50,MC1000,PPT8800; Intermec 700系列 有需要的请联系本人 QQ:6 ...…

查看全部问答>

急!!!如何在PC机上实现对单片机的控制(用VC++6.0编程)

小弟正在想弄一个在PC机上实现对单片机的控制,但不知道从哪个方面入手? 希望各位达人给予小弟一些指点.发个程序给小弟参考参考(用C语言编写的)…

查看全部问答>

正式入手STM8S103K3

经历了很多推销的宣传,今天买了10片样品,准备把以前ATMEL8的东西都移植过来. 有几个问题,一直没搞明白: 1. STM8S103K3会不会象ATMEL那样,1000元就能把代码都读出来?STM8S103K3的     解密难度有多大? 2. 以前一直用ICC和KEIL开 ...…

查看全部问答>

2812程序烧到片内flash中运行,能否用CCS和仿真器观察内部变量

2812程序烧到片内flash中运行,能否用CCS和仿真器观察内部变量, 调试电机程序,使用仿真器容易跑飞,希望能烧到flash中运行,同时也希望能像在ccs里仿真一样观察几个关键变量,听有的工程师说是能实现的,希望有能得到指点?…

查看全部问答>

用io口控制k9k8G08U0A写不进去数(急)

这是个试验程序,就是把整页写入同一个数据,,另外ID什么都可以读出来,,个人感觉数据是可以读出来的,,但读出来的全是FF,2112个FF后是64个0x15,我把读命令改错的话,读出来的是那个输入的数据,说明内部没把数据读出来,这是不是说明FF读出来 ...…

查看全部问答>

有源电力滤波器的控制技术的实现

在整个APF中基准电流的产生方法是核心环节,只有产生正确的基准电流信号才能很好的补偿谐波和无功电流。当只是补偿谐波电流时只需获取负载电流中的谐波分量即可,当补偿谐波及无功时除了要获取谐波电流信号外还需获取基波电流中的无功分量。基准电 ...…

查看全部问答>