新建STM32F427IIH标准库工程
新建STM32F427IIH标准库工程
实验前准备:最新版本的固件库,开发板,Jlink,keil5
采用最新固件库版本“V1.8.0最新标准固件库”(可上官网下载)
这边介绍从零开始搭建的方法。
注意事项:
1、不要导入stm32f4xx_fsmc.c,原因是F42不支持FSMC,支持FMC,f407才支持FSMC,导入之后
会报30个错。
2、所有文件最好不要命名中文,即文件路径不要出现中文,否则可能莫名其妙报错。
3、如果在keil中发现自己的某个文件上有一个黄色的小钥匙,说明该文件是被设置了只读模式,需要
返回到文件夹中全选所有文件->右击鼠标->属性 然后把只读的那一项取消。
一、新建一个文件夹
新建XXX作为工程的根目录文件夹,下设以下几个子文件夹。这些文件夹的名字是可以按照自己
的喜好改变的,原则上怎么方便后面写程序怎么来,所以我们会发现不同的人写的工程文件,每个文
件夹命名和内容都是不一样的。
CORE:用于存放STM32的CPU核心相关的文件和启动文件
FWLIB:存放STM32的外设库,大大简化了编程。
Project:MDK工程相关的目录,KEIL工程相关的文件
OBJ:放一些将来自己写的程序文件的.o .d .crf等类型的文件
Middlewares:下设一个System文件夹,System文件下设Inc和Src文件夹,Inc放头文件,Src放.c文
件,将来植入FREETOS也放在这
USER:存放如BSP(板级支持包)、APP(一些重要的子.c文件)、将来自己写的程序文件。下设
两个子文件夹inc和src,前者存放.h,后者存放.c文件。
二、新建一个工程
1、打开 Keil,点击 Keil 的菜单:
Project –>New Uvision Project ,然后将目录定位到刚才建立的文件
夹XXX之下的Project子目录,工程的名字可以根据自己的要求设置。Project文件夹就用来存放工
程的文件。
2、处理器选择我的芯片型号STM32F427IIH
3、后面弹出的对话框直接点OK
三、搭建工程环境
1、打开官方固件库包,定位到我们之前准备好的固件库包的目录:
\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver 下面,将目录下
面的 src,inc 文件夹 copy 到我们刚才建的FWLIB文件夹下。
2、打开官方固件库包,定位到目录:
\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Template
s\arm 下面,将文件 startup_stm32f427_437xx.s 、startup_stm32f427x.s(启动文件)复制到 CORE
目录下面。
3、打开
\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Includ , 将 里 面 的 四 个 头 文 件 :
core_cm4.h 、core_cmSimd.h 、core_cmFunc.h 、 core_cmInstr.h 复制到 CORE 目录下面。
4、复制工程模板需要的一些其他头文件和源文件到我们工程
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include 将里面的
2 个头文件 stm32f4xx.h 和 system_stm32f4xx.h 复制到 Project目录之下。
5、然后进入目录:
\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates ,将 目 录 下
面 的 6个 文 件 main.c ,main.h, stm32f4xx_conf.h , stm32f4xx_it.c , stm32f4xx_it.h ,
system_stm32f4xx.c 复制到 Project目录下面
6、导入文件到keil工程
点击
中的
将之前复制的文件导入到我们的工程,
注意不要导入stm32f4xx_fsmc.c
原因是F42不支持FSMC,支持FMC,f407支持FSMC,导入之后会报30个错。
7、设置头文件存放路径。
这一步骤非常重要。很多时候系统报错说找不到文件什么的可能就是这个没有设置好
点击魔术棒
将
STM32F427X,USE_STDPERIPH_DRIVER,__FPU_USED,__FPU_PRESENT,ARM_MATH_CM4,__CC_ARM,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING
复制到第一行Define
然后在Include Path 导入我们的文件路径
8、编译
发现没有错误,有错误可能是多/少导入了文件
9、LED测试
打开main.c,
将这一段里的A改为G,并且随便改GPIO_Pin_x(1<=x<=8)即点亮我的板子上的x灯(每个人的开发
板不同所以要看情况)
10、设置下载方式
点击魔术棒的Dubug,再点击Setting
选择Port为SW模式,因为我的开发板支持SW模式下载,视情况而定
11、下载到板上,发现对应的灯亮,OK。
新建STM32F427IIH标准库工程相关推荐
- (一)使用TrueSTUDIO软件新建一个基于STM32标准库工程
一.TrueSTUDIO说明 不管是还在学习的还是已经工作的应该都很熟悉Keil和IAR这两款用来开发嵌入式的软件,在国内普遍用的这两款编译软件都是破解版的,并没有经过正规渠道授权注册,这就导致了在开 ...
- STM32标准库工程中移植TencentOS-tiny
一.移植前的准备 1. 引言 因为项目的原因需要将原有的标准库工程升级为基于TencentOS-tiny的RTOS工程,所以花费一点时间记录移植过程,提供一份向基于STM32标准库的老工程中移植Ten ...
- STM32新建标准库工程
STM32F103ZET6创建一个自己的工程 笔者自己用的是正点原子的精英版的开发板,有很多习惯也养成跟正点原子创工程的习惯. 作者学生党一枚,写的不对的地方,请大家多多包涵,学习永无止境,闻道有先后 ...
- STM32F103ZET6新建标准库的工程
1.背景: 主要记录STM32芯片在使用标准库的情况下如何新建工程. 2.工程的准备 1)下载并安装STM32F103的芯片包 2)准备好STM32的固件库 2.1:芯片包的下载 芯片包官方链接:ht ...
- 1、新建基于标准固件库MDK5工程模板(STM32F103ZET6)
新建基于标准固件库MDK5工程模板 1.STM32官方库文件夹介绍 如上图,是ST官方提供的STM32标准固件库的文件包结构: STM32官方固件库下载地址: "https://www.st ...
- 基于keil5自动配置stm32f103标准库的官网freertos移植
基于keil5自动配置stm32f103标准库的官网freertos移植 前言 序言:利用keil5自动配置stm32f103标准库工程 闲话 正式篇 移植官网FreeRTOS 前言 当笔者学习s ...
- IAR新建stm32工程,完美移植stm32标准库(附源码)
开发环境:Window 10 64bit 开发工具:IAR Embedded Workbench 硬件:stm32f103c8t6 基于IAR 开发工具,新建立STM32F1系列的最小开发例程,并加入 ...
- STM32F103标准库开发:Keil5新建STM32工程
STM32标准库版工程模板链接 STM32F103标准库开发-目录 首先需要搭建Keil5编译环境,才可以新建STM32工程. Keil5编译环境搭建流程----STM32和GD32 新建STM32工 ...
- 【stm32f4 C++与C混合开发】建立keil5的ARM Compiler 6(AC6)标准库开发工程
文章目录 前言 一.选择正点原子串口实验的工程 二.用AC6编译纯C语言代码 1.打开魔法棒选择default compiler version6 2.编译工程 3.更改包含头文件依赖 4.修改旧版代 ...
最新文章
- 关于产品体验以及产品会被抄袭的思考
- c printf 缓冲区分析
- 二维数组排序php array_work,Arrays.Sort()中的那些排序算法
- OpenGait:首个步态识别框架开源了!
- 币安宣布Terence Zeng担任大中华区业务负责人
- python导入opencv解决no module named cv2问题
- [LOJ 6485]LJJ 学二项式定理
- 三星安卓4.2手机微信字体缺陷:“兹崖幽噩弱器朋鹏网品晶磊弼” ttf 字体缺失,安卓 4.2.2 微信 6.5.4...
- java 合并两个列表_如何在Java中合并两个列表?
- python revit二次开发_Revit怎么二次开发?Revit开发问题汇总
- Kontakt 6 for Mac(强大的音频采样器软件)
- mysql 中电话号码_类型-电话号码和地址的mysql数据类型
- 机器学习实战教程(13篇)
- 通达信 移动平均算法_【股市钱包】A005号指标:通达信分时图MACD
- 记一次kubernetes的搭建遇坑coredns状态为CrashLoopBackOff并不断重启
- 使用七牛云存储图片案例
- 阿里云对运营10多年来持续最久的故障发布复盘说明
- 物联网的云计算、雾计算、边缘计算和MIST计算的基本概念
- C++ DLL总结—静动态调用、导出类
- 【搬运】电源管理芯片引脚定义