欢迎光临,我们是一家专注中小型企业营销推广服务的公司!

咨询热线:400 9868 577
淮南兰乔电子商务有限公司
新闻中心News
淮南兰乔电子商务有限公司

STM32F407 GPIO口输出配置配置步骤

作者:星夢妙者 | 点击: | 来源:星夢妙者
2404
2025
STM32F407ZGT6是意法半导体(STMicroelectronics)公司推出的一款高性能ARMCortex-M4核心的32位微控制器(MCU)。它是STM32F4系列的一员,具备强大的处理能力和丰富的外设功能,适用于各种应用领域。【1】F407建工程所需依赖文件【2】新建工程说明:STM32F4的主频最高是168Mhz,所以我们一般设置PLLCLK为168Mhz(M=8,N=336,P=2),通过SW选择SYSCLK=PLLCLK即可得到168Mhz的系统运行频率。...

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

【1】F407建工程所需依赖文件
【2】 新建工程

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

【3】分析LED硬件原理图
【4】编写LED驱动代码

查看数据手册:

Led.c文件代码如下:

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">#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}</code>

Led.h代码如下

天天团购系统

天天团购系统是一套强大的开源团购程序,采用PHP+mysql开发,系统内置支付宝、财付通、GOOGLE地图等接口,支持短信发送团购券和实物团购快递发货等;另外可通过Ucenter模块,与网站已有系统无缝整合,实现用户同步注册、登陆、退出。 天天团购系统是一套创新的开源团购程序,拥有多达10项首创功能,同时支持虚拟和实物团购,内置类似淘宝的快递配送体系,并提供强大的抽奖、邀请返利等营销功能,让您轻松

下载 代码语言:javascript代码运行次数:0运行复制
<code class="javascript">#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);}#endif</code>

Main.c代码如下

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">#include "stm32f4xx.h" // Device header#include "led.h"void DelayMs(u32 time){u32 a,b,c;for(a=0;a<time;a++)for(b=0;b<100;b++)for(c=0;c<450;c++);}int main(void){LED_Init();while(1){LED0(0);LED1(0);//BEEP(0);DelayMs(1000);LED0(1);LED1(1);//BEEP(1);DelayMs(1000);}}</code>
【5】编译代码 配置下载
【6】编写无源蜂鸣器驱动代码

Delay.c延时函数代码

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">#include "delay.h"/*功能  :毫秒级别的延时函数参数  :填入延时的时间返回值:无说  明:频率在168MHZ情况下使用*/void DelayMs(u32 time){u32 a,b,c;for(a=0;a<time;a++)for(b=0;b<100;b++)for(c=0;c<450;c++);}/*功能  :微秒级别的延时函数参数  :填入延时的时间返回值:无说  明:频率在168MHZ情况下使用*/void DelayUs(u32 time){u32 k;while(time--){k=40;while(k--);}}</code>

Led.c代码

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">#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}/*1/2000HZ=0.0005s=0.5ms=500us1/4000HZ=0.25ms控制蜂鸣器:产生2KHZ~5KHZ的方波即可*/void BEEP_Ctlrl(u8 cmd,u32 time){u8 i;if(cmd) //打开蜂鸣器{for(i=0;i<time;i++){BEEP(0);DelayUs(250);BEEP(1);DelayUs(250);}}else   //关闭蜂鸣器{BEEP(0);for(i=0;i<time;i++)DelayUs(250);}}</code>

Mian.c主函数代码

代码语言:javascript代码运行次数:0运行复制
<code class="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);}}</code>
相关推荐
我要咨询做网站
成功案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 400 9868 577
    info#ilanqiao.cn
Hi,Are you ready?
准备好开始了吗?
那就与我们取得联系吧

咨询送礼现在提交,将获得兰乔电子商务策划专家免费为您制作
价值5880元《全网营销方案+优化视频教程》一份!
下单送礼感恩七周年,新老用户下单即送创业型空间+域名等大礼
24小时免费咨询热线400 9868 577
合作意向表
您需要的服务
您最关注的地方
预算

直接咨询