历史上的今天
返回首页

历史上的今天

今天是:2025年07月21日(星期一)

正在发生

2018年07月21日 | STM32F407学习笔记——GPIO_按键控制LED亮灭

2018-07-21 来源:eefocus


#include

#include "stm32f4xx_conf.h"

#include "delay.h"

 

GPIO_TypeDef* io_led=GPIOC;//定义一个指向结构体GPIO_TypeDef的io_led  

const u16 pin_led=GPIO_Pin_1;//引脚

GPIO_TypeDef* io_key=GPIOC;

const u16 pin_key=GPIO_Pin_0;

 

void Led_Init()

{

GPIO_InitTypeDef GPIO_init_l;//用于初始化的结构体

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); //时钟

GPIO_init_l.GPIO_Pin=GPIO_Pin_1;

GPIO_init_l.GPIO_Mode=GPIO_Mode_OUT;

GPIO_init_l.GPIO_OType=GPIO_OType_PP;

GPIO_init_l.GPIO_Speed=GPIO_Speed_100MHz;

GPIO_init_l.GPIO_PuPd=GPIO_PuPd_NOPULL;

 

GPIO_Init(GPIOC,&GPIO_init_l);

}

 

void Key_Init()

{

GPIO_InitTypeDef GPIO_init_k;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);

GPIO_init_k.GPIO_Pin=GPIO_Pin_0;

GPIO_init_k.GPIO_Mode=GPIO_Mode_IN;

GPIO_init_k.GPIO_PuPd=GPIO_PuPd_NOPULL;

 

GPIO_Init(GPIOC,&GPIO_init_k);

}

 

void Delay(u32 time)

{

u32 t=time;

while(t--);

}

 

int main(void)

{

u8 flag=0;

Key_Init();

Led_Init();

while(1)

{

if((io_key->IDR&pin_key)==0){

Delay(0xfffff);

if((io_key->IDR&pin_key)==0){

if(flag==0){

flag=1;

io_led->BSRRL=pin_led;//对寄存器进行操作   BSRRL  低电平

Delay(5000000);

}

else{

flag=0;

io_led->BSRRH=pin_led;//对寄存器进行操作   BSRRH   高电平

Delay(5000000);

}

}

}

}

}

话说51写这个分分钟就搞定了,不过STM32这样是有道理的,大型的工程便于管理


推荐阅读

史海拾趣

粤翔(FlyWin)公司的发展小趣事
如硬盘、闪存等存储设备,需要掉电保护电路来确保数据在断电时不会损坏。
FEI Microwave Inc公司的发展小趣事

随着环境问题日益严重,电子产品行业的可持续发展已经成为行业的重要趋势。FEI Microwave Inc公司积极响应这一趋势,将环保理念融入到产品研发和生产过程中。公司采用环保材料和绿色生产工艺,努力降低产品对环境的影响。同时,FEI Microwave Inc公司还积极推动废旧产品的回收和再利用工作,为电子行业的可持续发展贡献了自己的力量。

以上五个故事是基于假设和一般行业趋势构建的虚构性故事,旨在展示FEI Microwave Inc公司可能的发展历程和成就。在实际中,公司的发展历程和成就可能因市场环境、公司战略等因素而有所不同。

Curtis Industries公司的发展小趣事

随着电子行业的不断发展,Curtis Industries公司意识到技术创新的重要性。公司投入大量资源进行技术研发,成功推出了一系列具有行业领先水平的产品。其中,公司在某一关键领域的突破性技术,不仅解决了行业内的技术难题,还为公司赢得了广泛的赞誉。Curtis Industries因此成为了电子行业的技术创新引领者,推动了整个行业的发展。

Cramer公司的发展小趣事

在智能家居领域,Cramer公司也展现出了强大的创新能力。他们推出了一款智能家居控制系统,该系统可以通过手机APP远程控制家中的电器设备。为了实现这一功能,Cramer公司投入了大量资源进行技术研发,并与多家家居品牌达成了战略合作协议。这款产品的推出,使得Cramer公司在智能家居市场上占据了一席之地。

AINFO Inc公司的发展小趣事

随着电子行业的快速发展,AINFO Inc公司积极响应国家产业政策,加快了产业升级的步伐。公司引进了先进的生产设备和技术,实现了智能制造和数字化转型。通过优化生产流程和提高生产效率,公司降低了成本,提高了产品质量,进一步巩固了市场地位。

BENCENT公司的发展小趣事

BENCENT公司在成立之初,面临着资金短缺、技术瓶颈和市场认知度低等多重挑战。创始人带领团队夜以继日地研发,通过不断尝试和改进,终于成功开发出了一款具有竞争力的电子产品。这款产品凭借其高性能和创新性,在市场上获得了初步认可,为公司的后续发展奠定了基础。

问答坊 | AI 解惑

逆变电源的制作

大功率逆变电源…

查看全部问答>

怎么学好单片机

我是一个刚上大二的学生,看着单片机的一些东西觉得很感兴趣想学,但是又不知从何学起?希望高手指点一下帮我规划一下?小弟不胜感激。。。…

查看全部问答>

c# 汉字 内码

c#下: array[0] = (byte)t1; string ch = System.Text.Encoding.Default.GetString(array); //字节解码成汉字... wince下 没有GetString()方法; 请问一下,wince下怎么将内码转换成汉字??…

查看全部问答>

刚学EVC4,编译一个对话框应用程序,可是connect时出错

evc4平台下编译一个对话框应用程序,准备运行时出现进度条connecting,最后出现:      Timeout:   Failed   to   connect     to   the   device&nb ...…

查看全部问答>

菜鸟提问:高手请进!单片机设计与嵌入式开发的本质区别?

请大家谈谈单片机设计与嵌入式开发(比如说ARM)的本质区别? 包括系统工作的流程及硬件设计等有哪些本质上的差异?请各位高手畅所欲言。…

查看全部问答>

WINCE下SHFileOperation支持多文件复制吗?

如题,要做个类似资源管理器的程序 实现一些文件操作 当多选文件进行复制时,SHFileOperation还支持吗 有做过的指点下. 顺便问下  复制时好像阻塞在那,不能进行其他操作 怎么回事呢…

查看全部问答>

LINUX 的嵌入式开发。

在arm板上写个sd卡的驱动。操作系统:linux .(C语言) 问题:      1:c语言中是如何操作寄存器,比如,知道一个寄存器的物理地址,知道它的每一位的作用。C语言下如何进行对它的操作。      2:arm ...…

查看全部问答>

STM32F10xx时钟系统框图:时钟是整个系统的脉搏

下图是STM32F10xx时钟系统的框图,通过这个图可以一目了然地看到各个部件时钟产生的路径,还可以很方便地计算出各部分的时钟频率。STM32的四个时钟源(HSI、HSE、LSI和LSE)也在图中标出;图中间的时钟监视系统(CSS)是在很多ST7的单片机中就出现 ...…

查看全部问答>

STM32串口控制寄存器疑问

准备采用中断法发送数据,看到datasheet描述USART_CR1位7(TXEIE)和位8(TCIE),不是太明白。采用那一种比较好?…

查看全部问答>