STM32完全学习——STM32F407ZG7T6使用标准库点亮LED
一、工程的建立
首先STM32F4使用的是KEIL5,KEIL4搞不了。首先在一个文件夹建立下面几个文件夹。
然后将库里面的一些文件复制到上面的文件夹里面,将下面这些文件复制到CMSIS文件夹里面
将下面这个两个文件夹的内容复制到STM32F4xx_StdPeriph_Driver文件夹里面
然后给User目录里面创建一个文件main.c,然后在进行工程里面的一些设置
我使用的标准库版本如下:
如果你直接编译的话会出现许多关于这个文件的一些错误,那是因为我使用的这个F4芯片没有这个功能,因此只需要将这个文件从里面删除就行了。这个版本编译还会出现下面的错误:
有些时候也会报main.h不存在在这个错误,只需要在User目录里面添加这个文件就可以了,别忘了在main.c里面包含就行了。
二、GPIO初始化
这个和F1的时候处理的很像但是还是又不太一样的地方,下面看代码即可:我这里将两颗LED都进行了初始化,然后只需要在mian函数里面给端口写0就可以控制LED亮了。
void LED_Init()
{
GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE); //使能端口F时钟
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; //输出模式
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;//管脚设置F9
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;//速度为100M
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//推挽输出
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOF,&GPIO_InitStructure); //初始化结构体
GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);
}
在mian函数里面运行就可以啦。
GPIO_ResetBits(GPIOx, GPIO_Pin_9|GPIO_Pin_10);