【STM32-野火】(三)使用寄存器点亮LED

本文介绍如何使用STM32的寄存器配置GPIO为输出,以点亮LED。步骤包括开启GPIO口时钟,配置GPIO寄存器为输出,并通过设置ODR寄存器控制LED亮灭。此外,解释了推挽输出的工作原理和开漏输出的特点。
摘要由CSDN通过智能技术生成

【STM32-野火】(三)使用寄存器点亮LED

(一).由于stm32比51要更加高级,所以配置时不仅有输入还有输出,此时由配置高低寄存器决定端口,要配合材料看。
在这里插入图片描述
对应上图写配置GPIO为输出的代码 (操作寄存器内存点亮LED)。
代码如下,操作流程:
1.首先打开相应GPIO口的复位时钟,只有在时钟工作的时候,配置的相应GPIO才会工作

2.其次配置GPIO,在手册中找到对应的真实地址,将其配置为1(意思是配置IO口为输出,由于既有输入也有输出,所以在用时一定要配置)

3.最后再将LED所在ODR配置为0,使其点亮
所以即使没有第三步也可点亮灯,因为复位时自动清零,也就是相当于置0了

在这里插入图片描述
(二)拓展:
置位(符号):|=
清除(符号):&=
(三)GPIO功能框图讲解,IO口与芯片内部工作原理
在这里插入图片描述

  1. 推挽输出(P-Mos管负责)
    在这里插入图片描述
    由上图可知:如果ODR输入为0,反向为1,上面截止,下面会导通,输出为0V。(上通为推(灌电流),下通为挽(拉电流))
    在这里插入图片描述

2.开漏输出**(不接上拉电阻时,只能输出低电平,N-MOS负责)**
在这里插入图片描述
在这里插入图片描述

  1. 输入 在这里插入图片描述
    在这里插入图片描述

综上:
在这里插入图片描述
代码(寄存器控制):
.h文件应为:(从大地址推小地址,一步步找到要控制的寄存器和GPIO外设)
在这里插入图片描述

main函数里应为:
在这里插入图片描述
把清零操作注释掉,灯亮。
在这里插入图片描述
补充:还可以使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值