STM32固件库V3.5在Keil MDK环境下使用方法

发布者:云淡风轻2014最新更新时间:2015-09-18 来源: eefocus关键字:STM32  固件库V3  Keil  MDK 手机看文章 扫描二维码
随时随地手机看文章
简介

    写这篇教程主要是和大家分享使用STM32的基本方法,也是给自己学习过程的总结、记录和备忘,避免重复学习之前明白但又忘记的知识和操作。我现在也是刚开始接触学习STM32,我是在STM32的固件库V3基础上进行学习。在这里我和大家分享一下使用V3.x库的方法,希望大家喜欢,如有错误请指出。

    这篇教程分以下几个方面,一:建立工程,设置工程属性。二:建立条理清晰的GROUP;三:使用JLINK仿真调试。下面就分别逐个说明。

一、新建MDK工程

    1、首先,打开MDK软件,再点击Project->New uVision Project…,如下图所示:

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

弹出如下对话框:

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

    新建一个文件夹MDK工程,然后把工程名字设为test,点击保存。弹出选择器件的对话框,

我们使用的是stm32单片机,所以选择STMicroelectronics下面的器件,如STM32F107VCT6,如图所示:

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

点击OK,MDK会弹出一个对话框,如图所示:问是否加载启动代码到当前工程下面,

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

如果选择是,则这个启动代码是旧版本库的启动代码,新版本的启动代码和这个不同,需要自己添加。在这里我们使用的是新版本的库,所以点击否,自己添加启动代码。

    启动代码是一段和硬件相关的汇编代码,是必不可少的!这个代码具体如何工作,感兴趣可以研究一下,现在可以不必关心它。

    2、接下来我们需要对工程进行一些设置。

    在工程区,右键点击Target1,选择Options for Target‘Target1’ 如图所示:

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

弹出如下窗口,选择Output标签,设置目标文件的生成路径及其他相关参数。

 [转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法
 

如图点击Select Folder for Objects 在弹出的窗口中点空白处新建“Obj”文件夹,然后双击“Obj” 文件夹,如图中所示的Path后,点击OK.

点击Listing标签,新建“list”文件夹,设置链接文件的生成路径,及相关参数。如图所示:

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

    【友情提示:Obj和list这两个文件夹会保存Keil编译连接过程中产生的一些文件,虽然是一个不起眼的细节但是也请大家关注,不然在工程目录下面“邋遢”的很,所以强烈建议创建这两个文件夹!】

    点击Debug标签,选择使用的仿真器,我们使用JLINK V8进行仿真调试,对应的,在此选择Cortex-M/R J-LINK/J-Trace。Cortex-M/R J-LINK/J-Trace前的Use要选中,否则J-LINK调试会出问题。如图所示:

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

点击右侧的Setting,配置JLINK下载参数,主要是选择目标处理器系列,添加目标芯片对应的烧写算法。[page]

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

图中要勾选Reset and Run 选项,如果Flash Download 算法不对,请点击Add 重新添加Flash算法。

    点击Utilities,进行公共参数设置

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

至此,我们已经完成了一个RVMDK工程参数设置。

二、介绍MDK工程的文件管理方面的功能。

    我们在使用ST标准的固件库进行代码设计时,一个工程内可能会包含很多的库文件,因此对文件进行管理就非常的必要。

    如下图所示,右键点击Target1,选择Manage Components,进入分类文件管理设置。

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

在弹出的选择框中,可以设置工程名,增加、删减文件夹。以及在某个文件夹内添加删除文件。

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

在完成以上操作后,一个MDK工程就设置完成了,只需要依据实际应用要求编写相关代码即可。

   【友情提示:Groups下的文件夹不是实际存在的(如果这里的名字跟实际工程中的文件夹同名也不要以为它是真实的,否则不同名时,你在硬盘中是找不到它们的),只是为了工程管理建立的。】   

    我个人觉得标准的库文件“埋”的太深,使用起来有点不方便,所以我一般对这些文件进行一些整理,把相关文件放在一起,并取上一个标准化的名字,这些文件夹的名字一般和原始固件库文件夹的名字相同,只是把需要的文件放在一起。一般在工程目录下面我会建立以下几个文件夹,如图所示。当然还会建立前面已经建立的两个很有用的文件夹(List和Obj)

自己建立的文件夹和库文件的对应关系:

StdPeriph_Driver文件夹内的内容与标准库保持一致。

    STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver

StartUp文件夹内的文件在库中的位置:

    STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xStartUp

CMSIS文件夹内的文件在库中的位置:

    STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x

        stm32f10x.h,system_stm32f10x.c, system_stm32f10x.h

    STM32F10x_StdPeriph_Lib_V3.5.0ibrariesCMSISCM3CoreSupport

        core_cm3.c, core_cm3.h

 [转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法
 

    Groups文件夹的名称和工程文件夹的名称尽量保持一致,如上图所示。为每个Group添加同名文件夹下的源文件或者头文件,为了便于查看代码,我把源文件和头文件都添加进Group中(除StdPeriph_Driver),在这里注意过滤文件的类型。StdPeriph_Driver中只添加需要的源文件,例如建立一个LED闪烁的工程,那么这个工程除了进行必要的初始化之外,只需要包含GPIO的操作函数,当然需要使用GPIO就必须要使能GPIO的时钟,RCC是绝对少不了的。所以只需要包含misc.c,stm32f10x_gpio.c和stm32f10x_rcc.c。添加需要的文件之后,工程目录如图所示。

 [转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法

现在重新说明一下一个工程建立的文件夹:

    MDK工程:内有List和Obj两个文件夹

    CMSIS:包含系统的内核文件

    StartUp:包含各种启动文件

    User:用户编写的应用文件

    StdPeriph_Driver:内有src和inc两个文件夹,是标准库提供的源文件和头文件。

 

    当然也有人直接将List和Obj两个文件夹放在User文件夹内,然后去掉MDK工程文件夹。这样也是可以的,看个人爱好了。我习惯将User文件夹独立出来不放List、Obj和**.uvproj等文件,只放自己编写的应用文件,这样当项目有很多应用文件的时候可以在User内建立src和inc两个文件夹存放源文件和头文件,使文件结构看起来更加清晰。

 

    需要说明的是,虽然在有些Group中包含了一些头文件,但是Keil在编译连接的时侯却不知道头文件在什么地方,所以一定要指定头文件的路径。

[转载]STM32固件库V3.5 <wbr>在Keil <wbr>MDK环境下使用方法
【 重要 】 指定的头文件为:..CMSIS;..StdPeriph_Driverinc;..User

【 重要 】两个重要的宏也一定要指定:USE_STDPERIPH_DRIVER,STM32F10X_MD

三、J-LINK仿真调试。

       【 强调 】:Debug标签,使用JLINK V8进行仿真调试,对应的Cortex-M/R J-LINK/J-Trace前的Use要选中,否则J-LINK调试会出问题。

       这部分我就不多说了,在实际硬件平台上多多练习吧,祝大家在学习过程中不断提高。

注:此文档参考了网上的一篇文章和神舟开发手册的部分内容。

关键字:STM32  固件库V3  Keil  MDK 引用地址:STM32固件库V3.5在Keil MDK环境下使用方法

上一篇:STM32F103 基础知识1
下一篇:ARM汇编器对ARM的寄存器进行了预定义

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

5G标准化为商用奠定基础 商用和产业化还需时间
3GPP是5G标准的主导方,在5G标准第一版本发布的过程中,占据着重要地位,非独立组网5G NR标准虽然已经提前到来,但这并不意味着5G来临。业界人士认为商用和产业化还需时日。 比预期提前了六个月,12月20日,在3GPP(国际电信标准组织)RAN第78次全体会议上,5G NR(New Radio,新空口)首发版本正式冻结并发布,5G标准化迎来重要里程碑。 但是,5G标准体系是个繁杂工程,5G NR标准并非真正意义上完整的“全球第一个5G标准”,它只是3GPP将不同的能力分批写入5G网络标准中,5G商用的产业化工作仍在继续。 为5G全面商用奠定基础 作为移动通信系统基础设施建设中投资占比最大的部分,无线空口技术一直
[网络通信]
一种基于STM32的多功能精密电子秤
1、引言 本文采用四片箔式应变片组成一个惠斯登电桥。运用集成芯片HX711对称重传感器的模拟信号进行A/D转换,完成测量数据的采集,后经单片机对数据处理完成高精度的测量,随后加上各种算法,完成多种功能的计算;最后在配合液晶显示,触摸输入,语音播报等完成友好的人机交互。 2、系统组成 根据设计的需求,硬件上需要有称重传感器,AD转换电路,单片机最小系统,按键输入,显示输出,语音播报,以及电源模块,其组成的系统框图如图1。 图1 电子秤系统框图 3、称重传感器的设计 3.1、悬臂梁的设计 采用优质的铝合金材质(长,宽,高分别为:190mm,20mm,3mm),铝合金具有塑造性强,硬度适中,弹性好等特点,常作为电阻应变式称重
[单片机]
一种基于<font color='red'>STM32</font>的多功能精密电子秤
韩国5G用户月均移动数据24GB:使用量是4G用户2.6倍
市场研究公司Strategy Analytics援引韩国电信部门的数据称,在推出商用5G服务后,韩国移动用户5月份的平均5G移动数据使用量达到24GB,是4G用户平均使用量9.1GB的2.6倍,同时达到整体市场平均值7.4GB的3.2倍。 Strategy Analytics表示,若单独对比不限量套餐计划,5G用户消耗的移动数据流量也更多:5G用户为27GB/月,4G用户为23GB/月。 这家研究公司还报告称,截至6月底,韩国5G用户总数达到134万,占据该国整体市场的约2%。但是,仅占2%的5G用户却消耗了该国6月份移动数据流量消耗总量的6.4%。 据悉,目前SK电讯(SKT)以40%的市场份额领先韩国5G市场。 在电信行业
[手机便携]
韩国<font color='red'>5</font>G用户月均移动数据24GB:使用量是4G用户2.6倍
东芝推出额定值为5A/600V的高压智能功率器件
东京-- 东芝公司(TOKYO:6502)旗下存储与电子元器件解决方案公司今日宣布推出最新产品“TPD4207F”,扩大其小型封装高压智能功率器件(IPD)产品阵容,该产品适用于空调、空气净化器的风扇电机和泵等各类产品。新IPD采用小型“SOP30”表面贴装型封装,实现更大的额定电流(5A)和600V的高电压。量产出货即日启动。 该新IPD利用东芝最新MOSFET技术——600V超结MOSFET“DTMOSIV系列”,有效减小功率损耗,实现5A额定电流。这一电流足以驱动冰箱的压缩机电机,这是现有IPD无法做到的,因此新IPD的应用范围将得以扩大。 特点 • 在紧凑型表面贴装器件封装中实现5A额定电流和600V额定电压。 应用领
[电源管理]
东芝推出额定值为<font color='red'>5</font>A/600V的高压智能功率器件
华为:以行践言 共筑5G商用新里程碑
  在今天于北京举行的“ 5G 技术研发试验第三阶段规范发布会”上, 华为 无线网络 5G 产品线副总裁甘斌发表了主题为“以行践言,共筑 5G 商用的新里程碑”的演讲。甘斌表示, 华为 将以终为始,第三阶段测试重点面向5G商用完成系统验证。下面就随网络通信小编一起来了解一下相关内容吧。   据 华为 方面介绍,在中国5G技术研发试验项目中,华为率先完成了第一阶段和第二阶段的测试。而测试结果表明,华为在六大领域取得全面领先:最高小区容量平均小区速率,达28Gpbs;最低网络时延,仅0.36毫秒;最多网络连接数,10亿级;最全5G验证频段,涵盖全部C波段和毫米波段;最完整预商用系统,包括基站、核心网、终端;最丰富5G应用案例。   
[网络通信]
台积电CEO:美国5纳米芯片厂已经动工开建
台积电投资120亿美元在美国亚利桑那州建芯片厂,公司高管周二表示,工厂已经开始建设。    台积电CEO C.C。 Wei博士在公司线上年会召开时表示,从2024年开始工厂将会用5纳米技术量产芯片。    美国政府提供540亿美元补贴芯片企业赴美建厂,台积电、英特尔、三星都是争夺者。外媒之前曾报道称,在未来10-15年的时间里,台积电计划在亚利桑那建设最多6座工厂。    C.C。 Wei称,公司已经开发出一种5纳米芯片制造技术,它已经获得许可用在汽车上,支持类似AI等任务,只是这种技术的产品不太可能缓解目前汽车芯片短缺问题,因为现在缺少的是技术较落后的芯片。    另外C.C。 Wei还指出,下一代3纳米技术正在按计划推进,目标
[半导体设计/制造]
中国发布工业级5G终端基带芯片 筹建联盟促进应用发展
中国研发的最新一款工业级5G终端基带芯片“动芯DX-T501”28日在江苏昆山亮相发布,同期筹备建立工业级5G技术联盟,以加快推动该芯片应用落地,并加速产业互联网发展。 中科晶上工作人员展示最新发布的工业级5G终端基带芯片“动芯DX-T501”。 孙自法 摄 工业级5G终端基带芯片“动芯DX-T501”由中国科学院计算技术研究所控股北京中科晶上科技股份有限公司(中科晶上)研发生产,将落地昆山布局产业化应用发展。 工业级5G终端基带芯片“动芯DX-T501”发布仪式。 孙自法 摄 中科晶上董事长石晶林介绍说,工业级5G技术是下一代产业系统的核心中枢,未来各行各业将依赖于工业级5G与产业互联网的交织。“动芯DX-T501”是面
[手机便携]
风河携手Encora在MWC上展示AI自动化5G Open RAN运营
全球领先的关键任务智能系统软件提供商风河公司在世界移动大会上与Encora数字化工程服务公司联合演示5G Open RAN运营系统。Gartner的报告指出, 到2025年,通信服务提供商(CSP)至少将有40%的BU运营采用人工智能(AI)和机器学习(ML)解决方案来实现数字化和自动化,而这一比例在2022年底仅有15%。 电信行业在分析与机器学习等技术领域所积累的经验已经十分丰富,采用人工智能和大语言模型(LLM)来提高运行自动化水平将会带来更大的活力,从而降低大规模网络的运营成本,缩短解决现场问题的时间,提高客户满意度,同时减少停机时间。 风河首席技术官Paul Miller 指出:“全世界的服务提供商都面临着技术复
[网络通信]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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