IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 使用ST官方外设库新建工程模板 -> 正文阅读

[嵌入式]使用ST官方外设库新建工程模板

1、首先我们建立一个模板文件夹DEMO,在此文件夹中新建4个文件夹,分别为Output、Project、User、Libraries。

注:关于库文件的分析请查看如下链接:

STM32官方库文件分析及使用_thebestleo的博客-CSDN博客_stm32官方库文件本文以STM32F10x_StdPeriph_Lib_V3.5.0版本库文件为例1、解压在官网下载的库文件,文件夹内容详解如下图所示2、下面逐个文件夹分析一下,首先打开“Libraries”文件夹,“CMSIS”文件夹中? ?是一些Cortex-M3内核文件及一些启动文件,我们暂时不理会,一会会用到,? (只需添加到项目中就可以),“STM32Fhttps://blog.csdn.net/thebestleo/article/details/44036587

2、在Libraries文件夹中新建CMSIS、FWLIB两个文件夹

3、 将库文件中的下列文件复制到CMSIS文件夹中

STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport中的core_cm3.c

STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport中的core_cm3.h

STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h

STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm中的startup_stm32f10x_hd.s

?4、 将库文件中的下列文件夹复制到文件夹中FWLIB文件夹中

STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver文件夹中的

inc和src文件夹

?

5、在DEMO文件夹中新建一个文本文档,在文档中输入如下内容,并更改文件名称为“keilkill.bat”(一定要将扩展名更改为.bat,此部分代码是从它处摘录过来的,非原创)

del *.bak /s
del *.ddk /s
del *.edk /s
del *.lst /s
del *.lnp /s
del *.mpf /s
del *.mpj /s
del *.obj /s
del *.omf /s
::del *.opt /s  ::不允许删除JLINK的设置
del *.plg /s
del *.rpt /s
del *.tmp /s
del *.__i /s
del *.crf /s
del *.o /s
del *.d /s
del *.axf /s
del *.tra /s
del *.dep /s           
del JLinkLog.txt /s

del *.iex /s
del *.htm /s
del *.sct /s
del *.map /s
exit

6、将库函数STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template目录下的main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h这4个文件复制到模板“DEMO\User”文件夹中

7、打开Keil uVision5,在“DEMO\Project”文件夹下新建一个工程,取名叫Demo。

? (如果是第一次使用的话会打开一个自带的工程文件,我们可以通过工具栏

? ?Project->Close Project 选项把它关掉)

?

这里我们以STM32F103RC为例

8、接下来我们为工程添加必要的文件,在Keil uVision5的项目管理器中,右键单击Target 1,选择“Manage Project Items”

6、在组件窗口中,双击最左侧Target 1,更改名称为DEMO,在Groups中删除原有组,新建CMSIS、FWLB、USER这几个组。

7、下面我们向组中添加文件,点击选中User,在最后面一栏Files栏下方点击添加文件,添加文件路径如下

DEMO\User文件夹下的:main.c、stm32f10x_it.c

main.c:用户主函数

stm32f10x_it.c:中断服务函数

8、点击选中FWLB,点击添加文件,添加文件路径如下

DEMO\Libraries\FWLIB\src中的所有文件

这些文件是ST标准外设驱动函数.

11、点击选中CMSIS,点击添加文件,添加文件路径如下

DEMO\Libraries\CMSIS文件夹中的core_cm3.c

DEMO\Libraries\CMSIS文件夹中的system_stm32f10x.c

DEMO\Libraries\CMSIS文件夹中startup_stm32f10x_hd.s

core_cm3.c:Cortex-M3内核及其设备文件
─ 访问Cortex-M3内核及其设备:NVIC,SysTick等
─ 访问Cortex-M3的CPU寄存器和内核外设的函数


system_stm32f10x.c:微控制器专用系统文件
─ 函数SystemInit,用来初始化微控制器
─ 函数Sysem_ExtMemCtl,用来配置外部存储器控制器。它位于文件 startup_stm32f10x_xx.s /.c,在跳转到main前调用
─SystemFrequncy,该值代表系统时钟频率

startup_stm32f10x_hd.s是系统启动文件

startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F107xx
startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_hd_vl.s 大容量的STM32F100xx
startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_ld_vl.s 小容量的STM32F100xx
startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_md_vl.s 中容量的STM32F100xx
startup_stm32f10x_xl.s FLASH在512K到1024K字节的STM32F101xx,STM32F102xx,STM32F103xx

然后,我们需要对MDK环境进行一下设置

1、点击MDK环境中的目标选项按钮

2、我们首先选择输出文件的文件夹,我们选择Output文件夹,再填写你要输出的文件命名,最后勾选产生hex文件

?

3、点击C/C++选项卡,在Define 里面输入添加USE_STDPERIPH_DRIVER,?STM32F10X_HD。添加USE_STDPERIPH_DRIVER 是为了屏蔽编译器的默认搜索路径,转而使用我们添加到工程中的ST的库,添加STM32F10X_HD?是因为我们用的芯片是大容量的,添加了STM32F10X_HD 这个宏之后,库文件里面为大容量定义的寄存器我们就可以用了。芯片是小或中容量的时候宏要换成STM32F10X_LD或者STM32F10X_MD。其实不管是什么容量的,我们只要添加STM32F10X_HD 这个宏即可,当你用小或者中容量的芯片时,那些为大容量定义的寄存器我不去访问就是了,反正也访问不了。

4、在“包含文件路径”栏点击,在这里添加库文件的搜索路径,这样就可以屏蔽掉默认的搜索路径。

?

添加路径为:

DEMO\Libraries\CMSIS

DEMO\Libraries\FWLIB\inc

DEMO\User

?5、我们使用SWD下载调试的时候还需要对下列设置进行修改,首先找到Options中的debug选项卡,点击Settings

选择SW后,右面的对话框会出现如图所示选项,点击确定

?

?再点开Utilities选项卡,点击下图中的Settings选项

按照下图进行设置

?

?配置完成,现在我们就可以用SWD模式进行下载程序和在线调试了!

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:41:35  更:2022-03-30 18:44:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:47:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码