问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

stm32开发板怎么用按键控制流水灯

发布网友 发布时间:2022-04-27 05:51

我来回答

1个回答

热心网友 时间:2022-06-27 04:48

开发板上4个LED是接到STM32的4个IO口上的,要点亮LED,只要在这4个IO上输出对应的高电平

那如何让STM32在PF6~PF9这4个IO上输出高点平呢
首先要看下《STM32F10xxx参考手册CD00171190.pdf》里关于IO端口的介绍,第8章 通用和复用功能I/O(GPIO和AFIO)

百为STM3210E-EVAL开发板上的CPU是STM32F103ZET6,有GPIOA~GPIOG七组IO,每组IO有16个引脚GPIO_Pin_0~GPIO_Pin_15,如板上的PF0~PF15

其中每个IO端口有2个32位的寄存器(GPIOx_CRL和GPIOx_CRH)配置,每个引脚由其中4位进行配置,
4位字段是由一个两位的配置字段和一个两位的模式字段组成

要设置这4位,要看下GPIOx_CRL,GPIOx_CRH的寄存器定义

由上图可以看出GPIOF_CRL的31~28位是设置PF7的,GPIOF_CRL的27~24位是设置PF6的
GPIOF_CRH的3~0位是设置PF8的,GPIOF_CRH的7~4位是设置PF6的

这里我们把每个引脚设置为
CNF[1:0] = 00:通用推挽输出模式
MODE[1:0] = 11 : 输出模式,最大速度50MH

GPIOF_CRL,GPIOF_CRH的寄存器地址分别是0x40011C00,0x40011C04
这个寄存器是怎么得来的,STM32数据手册里并没有直接给出,在《一个内幕者对STM32的介绍》4.1.1 寄存器地址查阅 这里有介绍怎么通过上面的偏移地址算出。

配置好,我们就可以直接在端口输出数据寄存器GPIOF_ODR输出高电平控制LED了,GPIOF_ODR有16位,每个位对应GPF的一个引脚,PF0~PF15

下面就可以编写LED流水灯程序了,激动啊,等了好久终于等到今天

/* main.c */
#define GPIOF_CRL (*(volatile unsigned int *)0x40011C00) //端口配置低寄存器
#define GPIOF_CRH (*(volatile unsigned int *)0x40011C04) //端口配置高寄存器
#define GPIOF_ODR (*(volatile unsigned int *)0x40011C0C) //端口输出数据寄存器
#define RCC_APB2ENR (*(volatile unsigned int *)0x40021018) //

void delay(void)
{
unsigned int i;
for(i=0;i<500000;i++);
}
int main()
{
int i;
RCC_APB2ENR |= 1<<7; //打开GPIOF的时钟
GPIOF_CRL = ( GPIOF_CRL & 0x00ffffff ) | 0x33000000; //配置PF6,PF7为通用推挽输出模式,最大速度50MH
GPIOF_CRH = ( GPIOF_CRH & 0xffffff00 ) | 0x00000033; //配置PF8,PF9为通用推挽输出模式,最大速度50MH

while(1)
{
for(i=6;i<=9;i++)
{
GPIOF_ODR = ( GPIOF_ODR & 0xfffffc3f ) | ( 1<<i ); //在PF6~PF9引脚轮流输出高电平
delay();
}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 单片机C语言,一个按键控制三个流水灯 怎样用按键C51语言控制流水灯亮灭呢? 51单片机利用独立按键控制流水灯 单片机c语言编了个流水灯,用按键怎么实现它暂停。 c51单片机独立按键控制,流水灯程序 单片机按键控制流水灯状态切换 C语言 按键控制流水灯程序 51用按键控制流水灯 蒸汽挂烫机和蒸汽熨斗哪个好? 51单片机按键控制流水灯速度 用C语言编写按键控制流水灯的程序 微信和支付宝支付,信用卡有积分吗 招行信用卡在网络上消费有积分吗? 招行信用卡、招行国航知音联名信用卡在微信支付有信用卡积分吗 招行支付宝和微信有积分么 招行在支付宝和微信上刷 有积分么 招商银行微信支付有积分吗 招商京东小白卡,微信支付淘宝购物有积分吗。 招行微信支付现在有积分吗 招行微信积分在哪领 C51单片机按键切换流水灯 51单片机摁键控制流水灯? 按键控制流水灯汇编程序 51单片机 c语言 如何用4个按键控制4个流水灯 c51单片机独立按键控制三种流水灯 一个独立按键控制八只流水灯 中国为什么不出兵伊拉克? 佳琪,佳绮,佳琦,小女孩属马的哪个qi好 中国与伊拉克关系是否友好? qi字音读音哪个字好 搜伊拉克于中国有没有交界? 女孩取名永娸怎么样? 为什么有人说,中国是伊拉克战争最大受益国 飞常准有PC版吗? (qi)应该用哪个字.. 是最为名字用的 为什么美国要打伊拉克,但又为什么要先摆平叙利亚,还有,这些都跟中国有关吗?为什么总扯到中国,求详细解答 给孩子起名字哪个qi字的寓意好运来 伊拉克与中国关系 女宝宝名字叫周嘉qi用哪个字好 萨达姆时期的伊拉克和中国建交了吗?