STM32F429入门(三):使用寄存器点亮LED

(一)打开原理图,找到led所在引脚,选用PH10。

(二)选取寄存器,选用GPIO端口输出数据寄存器

GPIO 端口输出数据寄存器 (GPIOx_ODR) (x = A..I)

偏移地址:0x14

还需要设置GPIO端口模式寄存器:

GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..I)

偏移地址:0x00

此GPIO端口模式寄存器是两位控制一个io口,找到控制PH10的端口,还要注意使用的方法,我们使用的是输出模式:

 

(三)在stm32f4xx.h写入地址,也就是锁存器GPIOH的地址:

#define GPIOH_ODR *(unsigned int * )(0x40021C00 + 0x14)

在使用此寄存器前,要设置GPIO端口模式寄存器:

#define GPIOH_MODER *(unsigned int *)(0x40021C00 + 0x00)

(四)初始化GPIO端口模式寄存器

GPIOH_MODER |= (1<<2*10);

输出模式为0 1 ,也就是将1左移20位。

(五)写入以上的两步后,还不可以达到点亮led灯的目的,原因是因为没有开启外设的时钟,外设的时钟默认都是关闭的。要开启这个外设时钟,是在RCC中。

 

在stm32f4xx.h中存放此外设的地址

#define RCC_AHB1ENR *(unsigned int *)(0x40023800+0X30)

在main.c文件中需要将此寄存器置1,打开GPIOH端口的时钟:

RCC_AHB1ENR |= (1<<7);

(六)所以要实现Led亮,只需要三句以及地址的配置:

include “stm32f4xx.h”

int main()

{

/*打开GPIOH端口的时钟*/

RCC_AHB1ENR |= (1<<7);

/*PH10配置为输出*/

GPIOH_MODER = (1<<(2*10));

/*PH10输出低电平 */

GPIOH_ORD |= (1<<10);

/* PH10输出高电平*/

GPIOH_ORD &= ~(1<<10);

while(1);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑烯烃快去学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值