stm32寄存器

在这里插入图片描述
#define   RCC_APB2ENR   *((volatile unsigned int *) (0x40021000 + 0x18))在这里插入图片描述
#define RCC_APB2ENR *((volatile unsigned int *) (0x40021000 + 0x18))

RCC_APB2ENR |= 1<<3;

在这里插入图片描述
在这里插入图片描述
CRH是控制高八位引脚
CRL是控制低八位引脚
//配置推挽输出
GPIOB_CRH |= (3<<45); //设置3=11 输出最大速度50MHZ 45表示要控制哪个位

在这里插入图片描述
GPIOB_BSRR=(1<<(16+5)); //控制哪个引脚,低16位=1是高电平,高16位=1是低电平
//GPIOB_ODR&=~(1<<5); //还有ODR是直接对哪个引脚置1或者0,1为高电平,0为低电平
在这里插入图片描述
在这里插入图片描述
那么对于STM32如何让GPIOB端口实现全部输出高电平?
  GPIOB地址为0x4001 0C00 - 0x4001 0FFF,但是GPIOB这些地址分配了很多寄存器,分配给16位端口输出数据寄存器(GPIOx_ODR)的地址偏移为 0x0C,
  1、通过绝对地址访问:

//GPIOB 端口全部输出 高电平
在这里插入图片描述

1
2
其中寄存器地址=基地址+偏移地址
0x4001 0C00 + 0x0C = 0x40010C0C
(unsigned int*)类型强制转换成int *指针

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值