STM32F407zgt6--基于固件库的新建工程模板

目录

1、固件库下载

2、在keil中新建工程


1、固件库下载

1、stm32F407的固件库可以到官网去下载,st.com/content/st_com/en.html,点击Tools & software

2、选择Embedded  software,然后下滑找到箭头所指的方框,点进去

3、选择STM32  Standard  Peripheral  Libararies

4、然后点击图中的F4,要找其他型号自行点击

5、下滑到底部就可以看到固件库了,点击Get latest,旁边可以选择以前的版本,按照自己的需求来

6、然后它会让你选择一个身份登录,选择游客登陆就行

7、然后需要我们填写一些信息,要确保邮箱正确(它会发一个链接过来,让你确认),然后点击Get link to download,点击后会等一会,出现发送邮件成功的提示,点击ok即可

8、然后在当前浏览器打开官方发来的邮件,点击download now,跳转到那个网页等待一会它就会自行下载我们需要的固件库了。

9、解压出来的固件库包目录如下:

2、在keil中新建工程

1、首先创建一个用来存放工程的文件夹,我建在桌面上的(方便找),文件名为工程模板,然后在建的文件夹里创建几个子文件夹,这几个文件夹的用途后续会做出解释

2、打开keil软件,点击project新建工程

3、然后找到刚才我们新建的文件夹,再点击进去Project子文件夹,再给工程取个名字,点击保存

4、保存过后会弹出一个界面,让我们选择芯片的型号,如图所示点下去,我用的开发板是Stm32f407zgt6,所以我选择stm32f407zgtx,然后点击ok

5、然后会跳出来一个界面,点击cancel关闭即可

6、现在我们开始向工程文件夹移植固件库的依赖文件,首先移植工程里User文件夹里的内容,打开我们下载好的固件库,找到这个路径STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include

再把里面的两个文件都复制到User文件夹里

然后再去这个路径STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates

将红框中的文件复制到User文件夹下

复制完成后User文件夹的内容如图所示,总共8个,图标可能会和大家的不一致,因为我没有用编辑器打开过.c文件和.h文件,不过问题不大

7、然后向Core文件夹移植固件库文件,找到固件库的对应路径

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm

复制红框中的文件到Core文件夹下

找到对应文件路径

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Include

将红框中的文件复制到Core文件中,不过图中的core_cmSimd.h文件在一些低版本的固件库文件中被命名为core_cm4_simd.h,大家注意区分

移植后Core文件夹应该有以下文件

8、移植Library文件夹里的文件,找到固件库的对应路径

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver

把图中的inc和src文件夹直接复制到Library文件夹中

复制后的Library文件夹长这样

9、对于剩下的文件夹,不需要移植文件了,他们主要用来存放我们写的文件和系统输出的文件,

例如,System文件夹可以用来存放一些我们写的延时函数和串口程序,主要用来存放使用率比较高的程序,如果没有就空着吧;project文件夹是存放我们建立的工程的一些信息文件,系统自动生成的,可以点击文件中.uvprojx结尾的文件打开我们创建的工程;Object主要用来存放系统输出的.hex文件,后续会讲到;Hardware文件是用来存放我们自己写的文件,具体添加流程后续会讲到。

10、现在我们开始向keil软件里添加文件,右击Target1,然后点击Manage Project  Items...

11、出现如下界面

然后点击红框中的按钮添加Group,添加了三个group,都是我们需要的

然后选择Core,点击Add Files添加文件,找到我们工程文件里的Core文件夹,显示的文件类型默认是.c,刚出来是没有任何文件的,因为它只显示.c文件,我们手动更改为All Files,然后选中全部文件,点击Add添加文件,添加成功后就会显示到对应界面,添加完成后点close或叉掉都可以

选择Library,跟刚才一样的操作,找到Library文件下的src文件夹,将全部文件添加进去,添加完成后点击close或者叉掉

注意,我们需要把Library里面的stm32f4xx_fmc.c文件删掉,点击那个红叉就可以删除,因为我们的stm32f407zgt6是没有FMC这个外设的,不删掉会报错。

选择user,操作同上,找到工程文件夹里的user文件夹,选择三个.c文件进行添加,其他文件就不添加了(加了不好看,实在想加也可以),后续会设置它们的寻找路径,添加完成后点击close或叉掉

全部加完就是这个样子,文件夹的顺序可能不一样,不过问题不大,这个是可以更改的,自己摸索吧

12、现在我们要设置头文件路径和添加全局宏定义标识

一路点过去

然后点击这个框框,添加我们的头文件路径,点击框框后会出现可编辑的一行,我们不需要自己写,最右边有三个小点,点击他就会打开文件目录,我们就找到对应目录添加就行,添加完成点击ok

然后就是添加全局宏定义标识符,依旧是这个界面,在红框中添加STM32F40_41xxx,USE_STDPERIPH_DRIVER

注意别添加错了,直接复制粘贴即可,手敲容易出错

13、然后就是更改.hex的存放路径,选择Output,注意勾选Create HEX File,然后点击Select Folder for Objects...,选择我们创建工程时创建的Object文件夹;当然,不更改HEX文件的输出路径也可以,并不影响什么,只是更改后更容易找到这个文件,以后要用的时候方便找,但是勾选Create HEX File选项是必须的。

14、然后就是更改main.c的内容,main.c文件在User下,直接将原来的内容全部删掉,我们自己写一个简单的模板,在文本编辑框中右击选择插入头文件

然后添加函数体就行,我们的单片机程序就运行在while循环中

现在如果直接编译的话会出错,因为我们把main.c中的内容全部删除了,但是有个文件调用了main.c原有的东西,它找不到就报错了,在stm32f4xx_it.c文件中,我们注释掉它调用的函数

现在点击左上角进行编译,就会发现编译通过了,如果有警告,就在最后一行加一个空行

如果编译出来还是有很多地方报错,可以尝试更改编译器版本

15、现在来说一说怎么添加自己要写的文件,先右键点击Tartget1,再点红框框中的东西

点击红框中的东西新增组,命名为Hardware,点击ok

然后右键点击Hardware,再点击红框中的东西

新建头文件

然后给头文件添加内容,这个判断和定义的宏用来确保头文件只被引用一次,里面就可以添加函数的声明了,其他文件要引用本文件的函数直接include即可

再添加.c文件,.c文件的文件名要和头文件一致

在c文件中插入头文件(c文件自己的头文件不需要自己添加,系统默认),然后就可以开始实现函数了

如果有不清楚的地方,欢迎留下评论探讨

  • 22
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于stm32f407zgt6-freertos和esp32的智能家居控制系统是一种通过嵌入式技术实现的智能家居系统,旨在提供用户便捷的家居控制体验。该系统采用stm32f407zgt6微控制器作为主控芯片,搭配freertos操作系统,通过与esp32模块实现与互联网的通信,可以通过手机等设备随时随地对家居设备进行控制。 首先,stm32f407zgt6作为主控芯片具有较高的性能和稳定性,能够有效处理各种家居设备的控制指令,并与esp32模块进行通信。其搭配的freertos操作系统是一种实时操作系统,能够提供优先级调度和任务管理功能,确保系统的稳定性和可靠性。 其次,esp32模块作为通信模块能够实现与互联网的连接,通过WiFi或蓝牙等方式与手机等设备相连。该模块可以通过与stm32f407zgt6主控芯片的通信,将用户的控制指令传达给各个家居设备,实现对灯光、空调、窗帘等设备的远程控制。 智能家居控制系统具有以下特点:首先,用户可以轻松通过手机APP等设备远程控制家中设备的开关、调整亮度、调节温度等,提高生活的便捷性和舒适度。其次,系统支持定时开关功能,可以根据用户的需求在预设时间自动开启或关闭设备,实现省电和安全的目的。此外,系统还具备个性化场景设置功能,用户可以根据不同需求,设置不同场景的设备状态,如“回家模式”、“离家模式”等,提升用户的居家体验。 总结起来,基于stm32f407zgt6-freertos和esp32的智能家居控制系统通过嵌入式技术实现了设备之间的互联和智能控制,为用户提供便捷、舒适、安全的家居体验,是现代智能家居的重要组成部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值