STM32F407 GPIO口输出配置配置步骤
stm32f407zgt6 是意法半导体(stmicroelectronics)公司推出的一款高性能arm cortex-m4核心的32位微控制器(mcu)。它是 stm32f4 系列的一员,具备强大的处理能力和丰富的外设功能,适用于各种应用领域。




















说明:STM32F4 的主频最高是 168Mhz,所以我们一般设置 PLLCLK 为 168Mhz(M=8,N=336,P=2),通过 SW 选择 SYSCLK=PLLCLK即可得到 168Mhz 的系统运行频率。
【3】分析LED硬件原理图


查看数据手册:


Led.c文件代码如下:
代码语言:javascript代码运行次数:0运行复制#include "led.h"/*函数功能: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口输出默认电平*/GPIOF->ODR|=1<<10; //输出1GPIOF->ODR|=1<<9; //输出1GPIOF->ODR&=~(1<<8); //输出0}Led.h代码如下
代码语言:javascript代码运行次数:0运行复制#ifndef _LED_H#define _LED_H#include "stm32f4xx.h"void LED_Init(void);#define LED0(x) if(x){GPIOF->ODR|=1<<9;}else{GPIOF->ODR&=~(1<<9);}#define LED1(x) if(x){GPIOF->ODR|=1<<10;}else{GPIOF->ODR&=~(1<<10);}#define BEEP(x) if(x){GPIOF->ODR|=1<<8;}else{GPIOF->ODR&=~(1<<8);}#endifMain.c代码如下
代码语言:javascript代码运行次数:0运行复制#include "stm32f4xx.h" // Device header#include "led.h"void DelayMs(u32 time){u32 a,b,c;for(a=0;a<< 上一篇
网友留言(0 条)