历史上的今天
今天是:2024年09月09日(星期一)
2019年09月09日 | STM32F407ZGT6学习之工程建立及点灯
2019-09-09 来源:eefocus
(一). 使用的平台
使用的软件平台有两个,分别是IAR8.1和source insight4,下面给出两个软件的下载链接,仅供学习使用,其他用途请使用正版软件:
1. IAR8.1的编译下载平台,百度网盘下载链接:链接:https://pan.baidu.com/s/10_9VpOSaXK8ClsWqcTFSaQ,提取码: 6v2a
IAR8.1的安装流程可以参考第三方的网址:https://www.sdbeta.com/wg/2018/0307/220301.html
注意:IAR8.1在破解的时候可能会出现“Could not get infornation...的问题”,原因是IAR存放许可证的文件夹没有创建,需要把这条路径下没有存在的文件夹都创建齐,“C:ProgramDataIARSystemsLicenseManagementLicensePackagesARMEW1”。


2. source insight4的编译下载平台,百度网盘下载链接:https://pan.baidu.com/s/1ga36wRzy8ukMmoQfiR5yLw,密码:fcfd
source insight4的安装流程在下载的压缩包里有安装文档
(二). STM32工程的创建
1. 创建一个空工程
首先在IAR8.1的平台上创建一个工程,打开IAR8.1,菜单栏->Create New Project->Empty Project->点击OK,选择工程创建的地方进行保存,到此创建了一个空工程;


2. 添加文件夹
创建了一个空的工程之后,先在工程里面创建文件夹,以便对之后加进来的文件进行归类存放。
在工程“project - Debug”上右击,选择“Add”->“Add Group”创建新的文件夹,在创建的文件夹上,执行同样的操作,就可以创建二级文件夹。

根据个人习惯,创建好的文件夹如下:
stm32_driver存放STM32相关的文件和开发者编写的外设驱动文件,其中:
① CMSIS存放STM32相关的内核文件、寄存器定义文件、配置文件;
② StdPeriph存放STM32的库函数;
③ Driver存放开发者编写的外设驱动文件。

3. 添加文件
首先需要添加STM32相关文件,相关文件压缩包“STM32F4xx_DSP_StdPeriph_Lib”需要到ST官网“https://www.st.com/content/st_com/en.html”下载。
本工程使用ST公司提供的V1.8.0版本的库函数,百度链接:https://pan.baidu.com/s/1zyG8ZqEhoprVI5YkyiFvmA,密码:6pvf
该压缩包包含STM32F407芯片相关的文件,压缩包具体介绍可以移步这位博主的文章学习:http://www.cnblogs.com/King-Gentleman/p/4369381.html。
在工程目录下创建“user文件夹”存放代码文件,在“user文件夹”中创建“library文件夹”,以此创建完文件夹如下:

① 根据上文提到的各文件夹的功能,存放不同类型的代码文件:




② 把STM32相关库文件存放到我们的工程目录下之后,就要在IAR的工程中把需要的文件都加进来,这里我么只需要添加.c文件和一个STM32的启动文件.s文件就行了。

4. 配置工程文件
在工程“project - Debug”上右击,选择“Options”进入工程配置
①选择芯片型号,这里需要根据使用的芯片,选择相关的芯片型号,本工程使用的芯片型号是“STM32F407ZGT6”

刚才我们在IAR平台上,工程里添加文件的时候没有添加的.h文件,需要在配置文件中添加使用的.h文件的路径,这样工程就能自动找到使用的.h文件了。图中第3方框就是添加的头文件的路径,这里我们添加的是头文件的相对路径,"$PROJ_DIR"代表工程的位置。第4方框是宏定义的,用于选择使用的芯片。

本工程的下载器使用的是“ST-LINK”,所以下载器选择"ST-LINK",至此,工程的初步配置完成。

5. 开发阶段
本工程此次点灯功能,在“Driver文件夹中”创建驱动点灯的.c和.h文件,在工程下创建一个main.c文件,并添加到工程中如下

在这里,我们需要先开时钟,每个外设都用一个时钟,在需要使用的时候才开启,这种可以减少不必要的功耗
工程里控制LED灯的引脚用到了两组GPIO的引脚,所以需要开启这两组GPIO的时钟

开启时钟之后,就是对GPIO进行配置,使其输出对应的电平驱动LED灯亮,至此,点灯成功。
史海拾趣
|
摘要:理解电压调节器的物理特性对于设计符合EMI和EMC兼容性要求的电源系统至关重要。开关调节器(降压、升压、反激以及SEPIC拓扑结构)的物理特性对于元件选择、电磁设计以及PCB布局具有特殊的指导意义。漏感、ESR和ESL的寄生效应是优化电路性能的关 ...… 查看全部问答> |
|
最近在做VxWorks下的打印功能,可是VxWorks不像Windows或Linux那样提供“所见即所得”的GDI函数接口, 所以对于在VxWorks下做可打印和可显示的GDI函数接口一头雾水,无从下手,最近看到了介绍打印机控制语言 PCL和PostScript,感觉里面介绍的东西 ...… 查看全部问答> |
|
我知道printf是格式化输出,那么我只要传一个8位数,它们是不是就没有区别? 另外有个很重要的,printf只要我用了,就会不停得往串口输出数,哪怕我没把它放在循环语句中是不?比如我这样: while(1){ while(RI){ n=S ...… 查看全部问答> |
|
刚接触555的时候,我知道555最高频率不会超过500K,后来听说有所提高,刚才百度的时候,看到一个说最高2M。 最近,我在整理我的元器件,无意发现,有几块NE555上面写着 16M或者38M。 但是百度了没反应。 想去 ALLDATESHEET,发现进不去 ...… 查看全部问答> |
|
网上现在 STM8 火爆,价格便宜,据说128K flash 的20元,只是现在还不好买,性价比不错,而且是5V的,从网上下载了 STM8 用户手册粗看了一下,感觉是我最偏爱的 6502(类拟飞思卡尔 6800) 内核的升级版,但是指令系统比现在的飞思 ...… 查看全部问答> |
|
提个似乎很少人去研究的问题~STM32选项字的那两个用户字节~ 也就是STM32选项字中,可以被用户使用的两个字节: 位于:0x1FFFF804,0x1FFFF806.这个理论上用STM32的库函数FLASH_ProgramOptionByteData是可以写入的.但我试了,写入后,无论是读FLASH->OBR,还是直接从地址读,都读不出我之前写入的字~ Program ...… 查看全部问答> |
|
基于多DSP的无人机飞行控制软件设计摘要:结合正在参与的某型同定翼飞机控制系统的设计,分析在多CPU飞控机上飞行控制软件的设计,飞行控制计算机是以3块DSP2812作为控制单元,一 块主CPU两块从CPU,两块从CPU各自分担一部分工作,减轻了主CPU的负担,相 ...… 查看全部问答> |




