STM32学习笔记之寄存器代码解析(F4)

这篇博客详细解析了STM32F4中GPIO端口模式、输出类型、速度、上拉/下拉以及输出数据寄存器的配置,通过位操作实现对GPIO的控制,包括清零、与、或运算,以达到设置GPIO为通用输出模式、推挽输出、50MHz速度和上拉状态。

选自,STM32F4之寄存器实现跑马灯实验

GPIOF->MODER &=~(3<<2*9)//清零,第19位,18位的值为00

其中:~非运算,表示取反,例111111001111取反后为000000110000,方便我们计算其值。
&表示进行与运算,例1&0=0,1&1=1
|表示或运算,例1|0=1,1|1=1.
注:MODER &=B表示位MODR =MODER&B

一、GPIO 端口模式寄存器 (GPIOx_MODER) (x = A…I)

1.将18,19位清零*

  • [什么要配置MODER9=01 ?Y因为此时是pin9脚,故必须配置MODER9=01 ]

第一步:先将18,19位清零,再将这两位配置为MODER9=01,通用输出模式
数字3:表示18,19位为1,即11=3,
第二步,移位:3<< 2×9:表示11向左移动18位。此时18,19位的值为11,而MODER是两位的,故显示为2×9
此时除18,19位为11.其他的30位均为0,再通过取反操作:~,可以实现将18,19位清零的作用。
我们通过查询F4芯片资料手册的187页,可以得到如下所示GPIO端口模式寄存器的表格如下所示
在这里插入图片描述
2.配置MODER=01,通用输出模式(将18,19位值设置位01)

GPIOF->MODER |=(1<<2*9)//置位,第19位,18位的值为01

01=1,然后左移18位,配置MODER=01,通用输出模式。

二、GPIO 端口输出类型寄存器 (GPIOx_OTYPER)

在这里插入图片描述

将OTYPER9配置为OTYPER9=0(输出推挽)单字节

GPIOF->OTYPER &=~(1<<9)//将第9位清零(单字节)
GPIOF->OTYPER |=(0<<9)//将第9位置零(单字节)

三、GPIO 端口输出速度寄存器 (GPIOx_OSPEEDR)

在这里插入图片描述
将OSPEEDR寄存器配置为10,OSPEEDR9=10(50MHz)

GPIOF->OSPEEDR &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值