STM32F407ZGT6 是意法半導(dǎo)體(STMicroelectronics)公司推出的一款高性能ARM Cortex-M4核心的32位微控制器(MCU)。它是 STM32F4 系列的一員,具備強(qiáng)大的處理能力和豐富的外設(shè)功能,適用于各種應(yīng)用領(lǐng)域。
【1】F407建工程所需依賴文件
【2】 新建工程
**說明:STM32F4 的主頻最高是 168Mhz,所以我們一般設(shè)置 PLLCLK 為 168Mhz(M=8,N=336,P=2),通過 SW 選擇 SYSCLK=PLLCLK即可得到 168Mhz 的系統(tǒng)運行頻率。**
【3】分析LED硬件原理圖
【4】編寫LED驅(qū)動代碼
查看數(shù)據(jù)手冊:
Led.c文件代碼如下:
#include "led.h"
/*
函數(shù)功能:LED初始化
硬件連接:
PF8-- >BEEP --高電平響
PF9-- >LED0 --低電平亮
PF10- >LED1 --低電平亮
*/
void LED_Init(void)
{
/*1. 開時鐘*/
RCC- >AHB1ENR|=1< 5;//使能PORTF時鐘
/*2. 配置GPIO口模式*/
GPIOF- >MODER&=~(0x3< 8*2); //清除模式
GPIOF- >MODER|=0x1< 8*2; //配置輸出模式
GPIOF- >MODER&=~(0x3< 9*2); //清除模式
GPIOF- >MODER|=0x1< 9*2; //配置輸出模式
GPIOF- >MODER&=~(0x3< 10*2); //清除模式
GPIOF- >MODER|=0x1< 10*2; //配置輸出模式
/*3. 配置GPIO口輸出類型*/
GPIOF- >OTYPER&=~(0x1< 8); //0表示推挽輸出
GPIOF- >OTYPER&=~(0x1< 9); //0表示推挽輸出
GPIOF- >OTYPER&=~(0x1< 10); //0表示推挽輸出
/*4. 配置GPIO口輸出速度*/
GPIOF- >OSPEEDR&=~(0x3< 8*2); //清除之前配置
GPIOF- >OSPEEDR|=0x2< 8*2; //50MHZ輸出速度
GPIOF- >OSPEEDR&=~(0x3< 9*2); //清除之前配置
GPIOF- >OSPEEDR|=0x2< 9*2; //50MHZ輸出速度
GPIOF- >OSPEEDR&=~(0x3< 8*2); //清除之前配置
GPIOF- >OSPEEDR|=0x2< 10*2; //50MHZ輸出速度
/*5. 配置GPIO口輸出默認(rèn)電平*/
GPIOF- >ODR|=1< 10; //輸出1
GPIOF- >ODR|=1< 9; //輸出1
GPIOF- >ODR&=~(1< 8); //輸出0
}
?
?
?