STM-32自学手册笔记(一)点亮LED

这篇博客是STM32自学手册的第一部分,详细介绍了如何通过设置GPIO端口和时钟来点亮LED。首先,讲解了查看原理图以确定LED对应的端口和寄存器,然后编写程序置零GPIOB的ODR0。接着,设置了GPIO口为推挽输出,并调整端口配置低寄存器。最后,开启GPIO口的时钟,确保所有设置生效。在过程中遇到了因未设置I/O口为输出和开启时钟而导致灯未亮的问题。
摘要由CSDN通过智能技术生成

一、流程
1.首先看原理图在这里插入图片描述
目标是点亮GLED
需要将PB0置0,它由一个寄存器——端口输出数据寄存器(GPIOx_ODR)控制。每一位对应I/O端口的每一位。
高16位无效,低16位有效
那么现在的目标就变成了将ODR0位置0。
在这里插入图片描述
可知GPIOB的起始地址位0x4001 0c00,ODR的地址偏移位0CH,故ODR的地址位0x4001 0c00+0c=0x40010c0c。

写出点亮GLED的程序:*(unsigned int * )0x40010c0c &=~(1<<0);
进行编译,烧录,灯不亮

因为stm32中,I/O口是双向的,可以设置成输入也可以设置成输出
如需点亮LED,需设置成推挽式输出。接下来进行输出设置操作。

2.设置输出
在端口配置低寄存器中可以找到
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值