STM32F407 GPIO口输出配置配置步骤

2025-04-24阅读 0热度 0
gpio

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

【1】F407建工程所需依赖文件
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
【2】 新建工程
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤

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

【3】分析LED硬件原理图
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤
【4】编写LED驱动代码

查看数据手册:

STM32F407 GPIO口输出配置配置步骤
STM32F407 GPIO口输出配置配置步骤

Led.c文件代码如下:

代码语言:javascript代码运行次数:0运行复制
#include "led.h"/*函数功能:LED初始化硬件连接:PF8--&gt;BEEP  --高电平响PF9--&gt;LED0  --低电平亮PF10-&gt;LED1  --低电平亮*/void LED_Init(void){/*1. 开时钟*/  RCC-&gt;AHB1ENR|=1MODER&amp;=~(0x3MODER|=0x1MODER&amp;=~(0x3MODER|=0x1MODER&amp;=~(0x3MODER|=0x1OTYPER&amp;=~(0x1OTYPER&amp;=~(0x1OTYPER&amp;=~(0x1OSPEEDR&amp;=~(0x3OSPEEDR|=0x2OSPEEDR&amp;=~(0x3OSPEEDR|=0x2OSPEEDR&amp;=~(0x3OSPEEDR|=0x2ODR|=1ODR|=1ODR&amp;=~(1<p>Led.h代码如下</p>代码语言:javascript<i class="icon-code"></i>代码运行次数:<!-- -->0<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none"><path d="M6.66666 10.9999L10.6667 7.99992L6.66666 4.99992V10.9999ZM7.99999 1.33325C4.31999 1.33325 1.33333 4.31992 1.33333 7.99992C1.33333 11.6799 4.31999 14.6666 7.99999 14.6666C11.68 14.6666 14.6667 11.6799 14.6667 7.99992C14.6667 4.31992 11.68 1.33325 7.99999 1.33325ZM7.99999 13.3333C5.05999 13.3333 2.66666 10.9399 2.66666 7.99992C2.66666 5.05992 5.05999 2.66659 7.99999 2.66659C10.94 2.66659 13.3333 5.05992 13.3333 7.99992C13.3333 10.9399 10.94 13.3333 7.99999 13.3333Z" fill="currentcolor"></path></svg>运行<svg width="16" height="16" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor"></path></svg>复制<pre class="prism-token token line-numbers javascript">#ifndef _LED_H#define _LED_H#include "stm32f4xx.h"void LED_Init(void);#define LED0(x) if(x){GPIOF-&gt;ODR|=1ODR&amp;=~(1ODR|=1ODR&amp;=~(1ODR|=1ODR&amp;=~(1<p>Main.c代码如下</p>代码语言:javascript<i class="icon-code"></i>代码运行次数:<!-- -->0<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none"><path d="M6.66666 10.9999L10.6667 7.99992L6.66666 4.99992V10.9999ZM7.99999 1.33325C4.31999 1.33325 1.33333 4.31992 1.33333 7.99992C1.33333 11.6799 4.31999 14.6666 7.99999 14.6666C11.68 14.6666 14.6667 11.6799 14.6667 7.99992C14.6667 4.31992 11.68 1.33325 7.99999 1.33325ZM7.99999 13.3333C5.05999 13.3333 2.66666 10.9399 2.66666 7.99992C2.66666 5.05992 5.05999 2.66659 7.99999 2.66659C10.94 2.66659 13.3333 5.05992 13.3333 7.99992C13.3333 10.9399 10.94 13.3333 7.99999 13.3333Z" fill="currentcolor"></path></svg>运行<svg width="16" height="16" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor"></path></svg>复制<pre class="prism-token token line-numbers javascript">#include "stm32f4xx.h" // Device header#include "led.h"void DelayMs(u32 time){u32 a,b,c;for(a=0;a<time main>【5】编译代码 配置下载<figure class=""><img src="https://img.php.cn/upload/article/001/503/042/174549099588983.jpg" alt="STM32F407 GPIO口输出配置配置步骤"></figure><figure class=""><img src="https://img.php.cn/upload/article/001/503/042/174549099562069.jpg" alt="STM32F407 GPIO口输出配置配置步骤"></figure><figure class=""><img src="https://img.php.cn/upload/article/001/503/042/174549099661144.jpg" alt="STM32F407 GPIO口输出配置配置步骤"></figure>【6】编写无源蜂鸣器驱动代码<p>Delay.c延时函数代码</p>代码语言:javascript<i class="icon-code"></i>代码运行次数:<!-- -->0<svg xmlns="http://www.w3.org/2000/svg" width="16"    style="max-width:90%" viewbox="0 0 16 16" fill="none"><path d="M6.66666 10.9999L10.6667 7.99992L6.66666 4.99992V10.9999ZM7.99999 1.33325C4.31999 1.33325 1.33333 4.31992 1.33333 7.99992C1.33333 11.6799 4.31999 14.6666 7.99999 14.6666C11.68 14.6666 14.6667 11.6799 14.6667 7.99992C14.6667 4.31992 11.68 1.33325 7.99999 1.33325ZM7.99999 13.3333C5.05999 13.3333 2.66666 10.9399 2.66666 7.99992C2.66666 5.05992 5.05999 2.66659 7.99999 2.66659C10.94 2.66659 13.3333 5.05992 13.3333 7.99992C13.3333 10.9399 10.94 13.3333 7.99999 13.3333Z" fill="currentcolor"></path></svg>运行<svg width="16" height="16" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor"></path></svg>复制<pre class="prism-token token line-numbers javascript">#include "delay.h"/*功能  :毫秒级别的延时函数参数  :填入延时的时间返回值:无说  明:频率在168MHZ情况下使用*/void DelayMs(u32 time){u32 a,b,c;for(a=0;a<time delayus time k><p>Led.c代码</p>代码语言:javascript<i class="icon-code"></i>代码运行次数:<!-- -->0<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none"><path d="M6.66666 10.9999L10.6667 7.99992L6.66666 4.99992V10.9999ZM7.99999 1.33325C4.31999 1.33325 1.33333 4.31992 1.33333 7.99992C1.33333 11.6799 4.31999 14.6666 7.99999 14.6666C11.68 14.6666 14.6667 11.6799 14.6667 7.99992C14.6667 4.31992 11.68 1.33325 7.99999 1.33325ZM7.99999 13.3333C5.05999 13.3333 2.66666 10.9399 2.66666 7.99992C2.66666 5.05992 5.05999 2.66659 7.99999 2.66659C10.94 2.66659 13.3333 5.05992 13.3333 7.99992C13.3333 10.9399 10.94 13.3333 7.99999 13.3333Z" fill="currentcolor"></path></svg>运行<svg width="16" height="16" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor"></path></svg>复制<pre class="prism-token token line-numbers javascript">#include "led.h"/*函数功能:LED初始化硬件连接:PF8--&gt;BEEP  --高电平响PF9--&gt;LED0  --低电平亮PF10-&gt;LED1  --低电平亮*/void LED_Init(void){/*1. 开时钟*/  RCC-&gt;AHB1ENR|=1MODER&amp;=~(0x3MODER|=0x1MODER&amp;=~(0x3MODER|=0x1MODER&amp;=~(0x3MODER|=0x1OTYPER&amp;=~(0x1OTYPER&amp;=~(0x1OTYPER&amp;=~(0x1OSPEEDR&amp;=~(0x3OSPEEDR|=0x2OSPEEDR&amp;=~(0x3OSPEEDR|=0x2OSPEEDR&amp;=~(0x3OSPEEDR|=0x2ODR|=1ODR|=1ODR&amp;=~(1<p>Mian.c主函数代码</p>代码语言:javascript<i class="icon-code"></i>代码运行次数:<!-- -->0<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none"><path d="M6.66666 10.9999L10.6667 7.99992L6.66666 4.99992V10.9999ZM7.99999 1.33325C4.31999 1.33325 1.33333 4.31992 1.33333 7.99992C1.33333 11.6799 4.31999 14.6666 7.99999 14.6666C11.68 14.6666 14.6667 11.6799 14.6667 7.99992C14.6667 4.31992 11.68 1.33325 7.99999 1.33325ZM7.99999 13.3333C5.05999 13.3333 2.66666 10.9399 2.66666 7.99992C2.66666 5.05992 5.05999 2.66659 7.99999 2.66659C10.94 2.66659 13.3333 5.05992 13.3333 7.99992C13.3333 10.9399 10.94 13.3333 7.99999 13.3333Z" fill="currentcolor"></path></svg>运行<svg width="16" height="16" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor"></path></svg>复制<pre class="prism-token token line-numbers javascript">#include "stm32f4xx.h" // Device header#include "led.h"#include "delay.h"int main(void){u8 i;LED_Init();while(1){ i=!i; BEEP_Ctlrl(i,200);}}
登录后复制
免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策