首页 > 快讯 >

STM32F407 GPIO口输出配置配置步骤 观焦点

2023-07-06 15:03:36 来源:DS小龙哥-嵌入式技术


(相关资料图)

STM32F407ZGT6 是意法半导体(STMicroelectronics)公司推出的一款高性能ARMCortex-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文件代码如下:

#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;   //输出1 GPIOF- >ODR|=1< <9;   //输出1 GPIOF- >ODR&=~(1< <8);  //输出0 } ​ ​ ​

Led.h代码如下

#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 ​

Main.c代码如下

#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); } } ​
【5】编译代码 配置下载【6】编写无源蜂鸣器驱动代码

Delay.c延时函数代码

#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--); } } ​ ​

Led.c代码

#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;   //输出1 GPIOF- >ODR|=1< <9;   //输出1 GPIOF- >ODR&=~(1< <8);  //输出0 } ​ /* 1/2000HZ=0.0005s=0.5ms=500us 1/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); } } ​

Mian.c主函数代码

#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); } } ​

审核编辑:汤梓红

上一篇:

美团在山东济宁成立新公司

下一篇:

最后一页

x
推荐阅读

STM32F407 GPIO口输出配置配置步骤 观焦点

美团在山东济宁成立新公司

【环球速看料】苹果正式推送iOS 17开发者预览版Beta 3

突发噩耗!歌手李玟因抑郁症轻生去世,生前最后一条微博曝光|全球要闻

美丽中国丨夏日额仑草原

全球头条:刚刚,突发跳水!一字跌停,封单42万手!算力大反攻

新股前瞻|多维拆解壹健康价值:年收入超20亿,锚定万亿健康产业蓝海 每日观点

世界今日报丨如何修复drvsetup.dll文件

qq申请账号不用手机号(qq申请账号)-观速讯

公安部:重拳打击黑客类违法犯罪,维护我国网络空间安全

上海黄金交易所今日金价:上海黄金交易所黄金T+D 7月6日(周四)早盘盘初下跌0.03%报450.21元/克

【快播报】ST世茂:世茂投资被动减持7000万股公司股票

焦点快报!降雨引发泥石流灾害 陕西镇巴县渔渡镇局地国道和民房被掩埋

合肥保时捷车友会车友群妥协了,良心发现了,新福克斯终于换四缸了

北京市气象台发布高温橙色预警信号-天天快播报

华夏文明起源、迁徙和三星堆的前世今生_全球要闻

华为MatePad Air原野绿配正式开售 首销到手价2999元

公司员工事假请假条格式范文 全球热点评

智慧航运 足不出户便知船舶事-世界今日讯

深圳市易成互娱科技有限公司

微动态丨14年追踪拍摄变性人李二毛,纪录片里他不自爱,最后面临死亡危险

A股下半年行情拉开帷幕 景林、仁桥、星石、望正等六大私募重磅发声 全球简讯

今日观点!中国科学家揭示霍乱大流行菌株起源研究成果被写进国际权威教科书

信息:怎么腌猪肉才能放的时间常一些?

竹山“旅游驿站”获评省示范

有机花菜怎么炒才好吃_有机花菜 新动态

「决战非农」全面前瞻非农之夜_百利好×智库

挚爱母婴网官网(挚爱母婴网)

昊帆生物 今日新股缴款

东风货车系列车型(东风货车车型大全)|全球热点

全球微速讯:日本官员豪言:希望创建一家超越英伟达的公司

河南理工大学高等职业学院建筑504-1(河南理工大学高等职业学院)|世界热消息

从7月份开始,这些账户将进行清理 全球播资讯

当前资讯!上半年订单充足出口收入占比提高 飞龙股份预计净利润同比增超440.43%

新能源汽车“内外兼修” 带热车市助力稳经济 天天信息

电视剧冰雨火播出时间(电视剧冰雨火制片人)

神州泰岳(300002):7月4日北向资金减持352.17万股

华为手机热点怎么开启(华为手机充电热点资讯怎么关)

天天短讯!亚盛医药-B(06855.HK):7月4日南向资金增持17.92万股

今日快讯:签了!皮蓬前妻的前男友!离开湖人,联手字母哥

天天快资讯:今日自学编程首先要学哪些基础知识_自学编程先学什么如何学习编程

天天观点:中国石化“我要买油”一键可将油品配送到家

世界焦点!2023开封室内避暑旅游景点

环球快资讯:PR如何优雅的支持webm视频格式

银河退最新公告:公司股票将于7月6日被摘牌

外经贸 mba 外经贸mba官网 每日快报

环球即时:擎怎么读 罄怎么读

焦点热文:滨州市残联到洋湖乡参观调研残疾人如康家园运行工作

全球聚焦:定东陵地宫宝顶_定东陵地宫

牛蛙禁止和哪些食物一起吃(牛蛙禁止和什么食物一起吃)