当前位置: 首页 > news >正文

STM32工程环境搭建(库函数开发)

目录

1、移植固件库&标准库

2、新建工程


以STM32f401作为例子进行环境搭建

1、移植固件库&标准库

①桌面创建工程文件夹并且提取内核文件

用户文件:用户自己编写的程序文件 .c .h文件

.c文件:具体函数功能源代码

.h文件:宏定义、函数声明

内核文件:官方给的芯片的内核文件,没有这些文件程序跑不起来

 删除多余文件,节省内存

 删除多余文件,节省内存

②移植固件库

移植所需要的文件 Libraries\CMSIS\Device\ST\STM32F4xx\Include

把Include文件夹内两个文件(系统文件和芯片支持文件)移植到CMSIS里面

添加对应系统文件 Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates

添加对应启动文件 Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm

添加核心文件 STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS(已在本文件夹中)

③移植标准库

添加标准外设库的头文件(用于连接标准外设库与用户的代码)

STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\project\STM32F4xx_StdPeriph_Templates

移植完后删除文件,节省内存

最后,Libraries  和 CMSIS 文件夹存放东西如下: 

2、新建工程

①进入Keil5

②新建工程

 

③进行芯片选型

④配置虚拟设备树

注意要删除

 

 

删除原因:查看数据手册发现不支持FSMC,不删除编译就会报错

⑤包含头文件路径 

 

⑥尝试进行编译,定义启动文件

解决办法:宏定义STM32F401xx.USE_STDPERIPH_DRIVER

⑦再次尝试编译

解决方法:补充main函数

⑧再次编译

 

总结:

环境搭建步骤:

移植固件库所需文件

芯片支持文件: stm32f4xx.h

核心文件:include

系统文件:system.stm32f4xx.h     system.stm32f4xx.c

启动文件:startup_stm32f40_41xxx.s

移植标准库所需文件

标准外设库的头文件:stm32f4xx_conf.h

创建虚拟树

CMSIS:  system.stm32f4xx.c  startup.xxxxxx.s

STM32F4xx_StdPeriph_Driver:STM32F4xx_StdPeriph_Driver->src中所有文件(除fmc和fsmc)

包含头文件路径

.\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Include

.\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS

.\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\STM32F4xx_StdPeriph_Driver\inc

.\user\inc

http://www.lryc.cn/news/457881.html

相关文章:

  • 大数据新视界 --大数据大厂之大数据如何重塑金融风险管理:精准预测与防控
  • 【C# 网络编程】基本概念
  • 系统架构设计师-下午案例题(2018年下半年)
  • StarRocks报错:Getting analyzing error. Detail message: Unknown database ‘你的库名‘.
  • 【原创教程】电气电工23:电气柜的品牌及常用型号
  • AI引起用人格局变动,个人如何应对这一趋势
  • 小程序项目实践(一)--项目的初始化以及前期的准备工作
  • 宝藏CSS样式网站,开发一些酷炫的特效
  • vscode报错No module named ‘Crypto‘
  • 机器学习中的多模态学习:用C/C++实现高效模型
  • Java 运行机制及运行过程
  • IC开发——数字电路设计简介
  • openmmlab实现图像超分辨率重构
  • 四、远程登录到Linux服务器
  • Qt开发全指南:从基础到高级
  • 【算法】——双指针算法合集(力扣)
  • 小猿口算自动PK脚本
  • 蓝桥杯备赛(c/c++)
  • LLM大模型预测耗时的粗略估计以及sft和continue pre-train的区别
  • go和python打包项目对比
  • EmEditor传奇脚本编辑器
  • 基于JAVA+SpringBoot+Vue的实习管理系统
  • Python自定义异常类:实际应用示例之最佳实践
  • 创新设计大师项骅:用卓越才华打造医疗科技新未来
  • 云计算第四阶段 CLOUD2周目 01-03
  • Linux搭建Hadoop集群(详细步骤)
  • MongoDB中如何实现相似度查询
  • F开头的词根词缀:ful
  • 【python开发笔记】-- python装饰器
  • WEB攻防-python考点CTF与CMS-SSTI模板注入PYC反编译