在Keil MDK中创建STM32F4系列的工程模板(标准外设库)

  • 一、前往ST官网下载标准外设库
  • 二、根据个人风格创建文件夹目录
  • 三、创建MDK工程,创建分组
  • 四、添加系统启动必要源文件
  • 五、添加头文件路径
  • 六、定义预处理符号
  • 七、时钟配置

一、前往ST官网下载标准外设库

  ST 官网地址 https://www.st.com/content/st_com/en.html





  如无法下载,请先注册并登陆ST账号,然后再尝试下载。

二、根据个人风格创建文件夹目录

如:
  BSP 目录存放板级支持包
  Doc 目录存放文档资料
  App 目录存放用户应用代码
  Library 目录存放官方标准库
  Custom 目录存放自定义库文件
  Thirdparty 目录存放第三方库文件
  CMSIS 目录存放内核头文件
  Project 目录存放工程文件
  OBJ 目录存放编译中间文件

三、创建MDK工程,创建分组

  1)创建新的工程文件,并根据个人习惯保存在所需目录;


  2)选择合适的芯片型号(需已安装好相应的芯片包);

  3)点击“管理工程项目”,根据个人风格创建组(Groups),用于对不同类型文件或不同功能的源文件进行分组管理,一般工程下每个文件夹对应一个组(Group)比较好,不容易混乱;


四、添加系统启动必要源文件

  将源文件添加到对应的组(Group),对于STM32F4系列MCU来说,必要的源文件有三个:

  1、main.c(编写我们的main函数)

  2、startup_stm32f4xx.s(启动文件,用于初始化堆栈和中断向量表,根据实际所用型号选择对应的启动文件)
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm目录下存放了STMF4系列所有MCU的启动文件。

  3、system_stm32f4xx.c(系统时钟配置、Flash配置及其他配置等初始化)
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates目录下存放有此文件。

五、添加头文件路径

  设置头文件包含路径,将ST官方标准库中的两个include文件夹和一个inc文件夹路径添加进去即可(最好复制到工程目录相应的文件夹下)。

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Include
这个目录下是CMSIS相关的头文件

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include
这个目录下是系统初始化相关的头文件

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver\inc
这个目录下是片上外设模块相关的头文件

六、定义预处理符号

  在C/C++选项设置中,根据实际所用型号的芯片定义对应的预处理符号,具体可参考前面下载的ST官方标准库中 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates\MDK-ARM 路径下的readme.txt文件;


七、时钟配置

  需要 特别注意 的一点是——必须根据实际使用的HSE时钟源频率来定义 HSE_VALUE 宏的值,可以在stm32F4xx.h头文件中直接修改此宏的值,或者如步骤6所示直接定义一个预处理符号

  定义的预处理符号会先于所有文件中的宏生效,又因stm32F4xx.h头文件中使用了 #if !defined (HSE_VALUE) 对 HSE_VALUE 宏做了防重复定义处理,所以stm32F4xx.h中的 HSE_VALUE 宏不会生效。

  要使用预处理符号的方式定义一个宏并设置一个值,请使用 宏名=值 的语法,这相当C预处理器 #define 语句 #define 宏名 值。

  修改HSE_VALUE宏的值后,还要在system_stm32F4xx.c源文件中修改PLL预分频系数,该文件默认将SYSCLK系统时钟配置为最高支持的频率。

  标准库文件默认外部晶振频率为25MHz,PLLM系数也默认为25,即默认主PLL输入时钟为1MHz。因此,假如我们实际的外部晶振频率为8MHz,则我们只需修改HSE_VALUE为8000000,同时修改PLLM为8即可配置SYSCLK系统时钟为最高频率了。

在Keil MDK中创建STM32F4系列的工程模板(标准外设库)相关推荐

  1. Keil MDK基于标准外设库创建工程和目录图文教程

    欢迎大家浏览更多高清视频演示 STM32的开发不像FPGA的开发那样,一切都几乎要从零开始做.STM32的厂商基于ARM创建了非常完善的标准外设库的库函数,开发者只需要调用这些库函数即可完成自己需要的 ...

  2. 使用Keil MDK以及标准外设库创建STM32工程

    应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板,个人录制,欢迎指正.下载地址:http://dl.dbank.com/c0w0ehqynd 2013.3补充在线视频教程 ...

  3. (2)stm32开发之使用Keil MDK以及标准外设库创建STM32工程

    通过上一节对标准外设库的介绍,想必各位读者对标准外设库已经有了基本的认识,然而由于标准外设库中文件众多,很多初学者在开始很长一段时间内甚至都无法完全自己建立一个工程,很多人只是依赖标准外设库或给定的工 ...

  4. keil stm32标准库放在哪里_使用Keil MDK以及标准外设库创建STM32工程

    应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板,个人录制,欢迎指正.下载地址:http://dl.dbank.com/c0w0ehqynd 2013.3补充在线视频教程 ...

  5. stm32开发之使用Keil MDK以及标准外设库创建STM32工程

    通过上一节对标准外设库的介绍,想必各位读者对标准外设库已经有了基本的认识,然而由于标准外设库中文件众多,很多初学者在开始很长一段时间内甚至都无法完全自己建立一个工程,很多人只是依赖标准外设库或给定的工 ...

  6. keil stm32标准库放在哪里_STM32(1)——使用Keil MDK以及标准外设库创建STM32工程...

    转载来自:http://emouse.cnblogs.com 1.1 开发工具与开发环境 1. 软件版本 本节所使用Keil MDK 为目前的最新版V4.21.其他版本差别不大,读者可以根据自己使用的 ...

  7. keil MDK中如何生成*.bin格式的文件

    在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件.虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯 ...

  8. 在keil 4中添加stc系列芯片的方法--【sky原创】

    在keil 4中添加stc系列芯片的方法:  1.从官网下载uv3.cdb的文件 网址是:http://www.stcmcu.com/ 2.下载好后把uv3.cdb文件改成STC.cdb: 3. 然后 ...

  9. keil(MDK)中出现error: #513:

    keil(MDK)中出现error: #513: a value of type "int" cannot be assigned to an entity of type &qu ...

最新文章

  1. Java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
  2. burpsuite 实战指南
  3. chrome 技术篇-控制台切换框架,切换dom操作区
  4. 重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, Tab 导航, Pointer, Tap, Drag, Drop...
  5. Dubbo服务引用过程
  6. 自定义LeNet5,开启你的炼丹之路
  7. kali2 安装docker_kali linux 安装docker
  8. 《Business Rules Engine Overview》--《业务规则引擎概述》write by Mark Kamoski
  9. linux Socket send与recv函数详解
  10. 【2018】面试复习大纲
  11. eclisp导入jsp项目之基础
  12. 京瓷m1025维修模式进不去_京瓷1025打印机无法扫描怎么处理?
  13. python控制键盘按键_如何通过Python生成键盘按键事件来控制PP的表示?
  14. Launcher3 桌面加载流程分析
  15. I2C、Arduino、ADXL345、
  16. 2022最新网络安全零基础学习路线
  17. Java字符串首尾显示,中间隐藏
  18. 基于AM5728的PROFIBUS 通信测试
  19. php镶入电脑网页,flash插件来调用pc的摄像头如何将它嵌入到TML页面
  20. 如何下载视频号的视频?微信视频号视频保存方法,不用进入手机管理文件去修改。

热门文章

  1. Spring5 IOP轻松学习
  2. 特斯拉Powerwall网关可能受到黑客攻击
  3. MATLAB数列与极限
  4. Verilog专题(十九)新世界的大门——状态机
  5. 做个表白页面需要掌握哪些英语单词?
  6. 人心比万物都诡诈,谁能识透呢?
  7. c语言怎么将两个整数变量值交换,C语言如何利用异或进行两个值的交换详解
  8. 关于机器视觉机械手与相机标定走位点位的计算模块
  9. Linux使用Shell编写电子词典
  10. 毕业设计、卷积cnn、lstm、random walk、地址交易识别