1.新建工程
(1)这一步可以多看看视频熟悉熟悉
2.编写LED初始化函数和头文件
(1)led.c文件
#include "led.h"
#include "stm32f4xx.h"
void LED_Init(void)
{
RCC->AHB1ENR |= 1<<5;
//GPIO9
GPIOF->MODER &= ~(3<<2*9); //端口模式寄存器(00:输入(复位状态)01:通用输出模式 10:复用功能模式 11:模拟模式)
GPIOF->MODER |= 1<<(2*9);
GPIOF->OSPEEDR &= ~(3<<2*9); //端口输出速度寄存器(00: 2 MHz(低速)01: 25 MHz(中速)10: 50 MHz(快速)
//11: 30 pF 时为 100 MHz(高速)( 15 pF 时为 80 MHz 输出(最大速度)))
GPIOF->OSPEEDR |= 2<<(2*9);
GPIOF->OTYPER &= ~(1<<9); //端口输出类型寄存器(0:输出推挽(复位状态)1:输出开漏)
GPIOF->PUPDR &= ~(3<<2*9);
GPIOF->PUPDR |= 1<<(2*9); //端口上下拉寄存器
GPIOF->ODR |= 1<<9; //1 // 端口输出数据寄存器 (端口输出数据)
//GPIOF->ODR &= ~(1<<9); //0
//GPIO10
GPIOF->MODER &= ~(3<<2*10);
GPIOF->MODER |= 1<<(2*10);
GPIOF->OSPEEDR &= ~(3<<2*10);
GPIOF->OSPEEDR |= 2<<(2*10);
GPIOF->OTYPER &= ~(1<<10);
GPIOF->PUPDR &= ~(3<<2*10);
GPIOF->PUPDR |= 1<<(2*10);
//GPIOF->ODR |= 1<<10; //1
GPIOF->ODR &= ~(1<<10); //0
}
(2)led.h文件
#ifndef _LED__H
#define _LED__H
void LED_Init(void);
#endif
3.编写main函数实现功能
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
int main(void)
{
delay_init(168);
LED_Init();
while(1)
{
GPIOF->ODR &= ~(1<<9);
GPIOF->ODR |= (1<<10);
delay_ms(50);
GPIOF->ODR |= (1<<9);
GPIOF->ODR &= ~(1<<10);
delay_ms(50);
}
}
注意:熟练运用参考手册是重点