STM32F4 第一篇新建工程.docx
《STM32F4 第一篇新建工程.docx》由会员分享,可在线阅读,更多相关《STM32F4 第一篇新建工程.docx(9页珍藏版)》请在冰点文库上搜索。
STM32F4第一篇新建工程
STM32F4Discovery第一步——新建工程
1.我们首先打开Keil(我装的是V4.53版本的,可在此下载),在Project目录中,选择NewuVisionProject...显示创建工程对话框,我们把它保存在不含中文的文件夹中,命名工程并保存。
如图1.创建工程
2.当保存后,弹出设备选择对话框,我们双击STMicroelectronics,往下选择STM32F407VG设备并点击OK保存你的设置。
如图2.设备选择对话框
3.点击是(Y)按键复制并保存STM32启动代码到工程文件夹中
图3.是否选择启动代码对话框
4.接着我们创建一个新文件,在File目录中,选择New...打开一个空的编辑窗口。
点击File中SaveAs...保存到该工程文件夹下并重新命名为Bilnky.c。
图4.创建新文件并保存
5.把文件添加进工程工具链中,在Project窗口中的SourceGroup中右击,选择AddFilestoGroup‘SourceGroup’...
图5.添加文件到工程工具链中
图6.添加成功后,新工程结构
6.以上步骤,已经完成了工程的一小步。
接下来是我们还要对配置文件进行设置。
6.1.在Project目录中,选择OptionsforTarget1显示目标板配置文件对话框。
6.2.打开Target标签,按如下图6.2所示配置
图6.2Target标签配置
6.3打开Debug标签,按以下步骤进行
图6.3.1Debug标签设置
图6.3.2点击Setting按钮,进入Cortex-MTargetDriverSetup设置界面
图6.3.3选择FlashDownload子选项,并点击Add按键添加相应的FlashProgrammingAlgorithm
6.4打开Utilities标签,进行如图6.4设置
图6.4Utilities标签设置
7.快看到黎明的曙光了,接下来是最重要的一步,在编写程序之前,我们需要把用到的头文件的路径保存到工程中。
(为保障工程完整性,我们把需要用到的各个文件复制并保存在Blinky文件夹中)
图7复制并保存文件到新建工程文件夹下
8.重新打开Project目录下,OptionsforTarget1显示目标板配置文件对话框。
选择C/C++标签,添加头文件路径并保存,如下图:
图8添加头文件路径
9.把相应.c文件添加进工具链中,添加完成后如图
图9添加.c文件
10.至此,我们的整个工具设置已经完成,接下来就可以编写我们的程序了。
我以一个简单的亮灯程序为例。
1.#include"stm32f4_discovery.h"
2.GPIO_InitTypeDefGPIO_InitStructure;
3.voidDelay(__IOuint32_tnCount);//简单延时函数
intmain(void)
{
4.RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);//使能外围时钟
/*配置PD12为输出、上拉模式*/
5.GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;
6.GPIO_Init(GPIOD,&GPIO_InitStructure);//GPIOD初始化
while
(1)
{
GPIO_SetBits(GPIOD,GPIO_Pin_12);//配置PD12输出为高
Delay(0x7FFFFF);
GPIO_ResetBits(GPIOD,GPIO_Pin_12);//设置PD12为低
Delay(0xFFFFFF);
}
}
voidDelay(__IOuint32_tnCount)
{
while(nCount--)
{
}
}
首先第一句#include”stm32f4_discovery.h”是包含一个头文件,该文件完成的功能主要是对stm32f4XX芯片寄存器的定义。
第二句可以简单的认为是对GPIO初始化结构体定义的重新命名,可直接命名为自己喜欢的名字供日后使用。
第三句是延时函数的声明,延时函数在main函数下面有定义。
第四句是RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE)使能外围模块GPIOD的时钟,使用前必须配置时钟。
第五句是,根据实际需要,配置GPIOD端口为输出模式。
第六句初始化GPIOD端口。
最后,我们把PD12口设置成高来达到点亮LED4的目的。
由于时间等原因,只能草草收尾,如有不详细的地方还请大家多多海涵。