[STM32F4]学习笔记,大一小白自学入门——寄存器与gpio

寄存器编程.2024.1.12

什么是寄存器?:外设的地址

在这里插入图片描述

	如何使用这些外设?
		需要找到他们的地址。(参考手册 "存储器映射")
如何使用寄存器编程?

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

上图运用指针,将指定的寄存器值置为1

学习外设GPIO 2024.1.12

什么是GPIO?–通用输出端口

gpio结构框图——结构决定性质

在这里插入图片描述

3 输出数据寄存器 和 4复用功能输出通过门电路控制 2
什么是复用?将IO口复用,从而控制其他串口

gpio两种输出模式:推挽与开漏
推挽模式负载能力和开关速度好
开漏模式 线与
在这里插入图片描述
IN输入低电平后整个总线都变成低电平,也就是一个单独设备占用了一整条总线,从而实现双向通信。(why?)

5,6的输入,跟输出一样理解,不过是向外读数据
7 模拟输入 模拟信号

使用寄存器编程(以gpio点灯为例)2024.1.12

1、看原理图,发现要给pb0低电平

在这里插入图片描述
2、配cubemx
3、了解总线架构 --cortex-M3内核通过总线控制外设
4、如何控制呢?通过控制外设的时钟,不给外设时钟相当于将外设失能
5、看具体外设挂在哪条总线上(这里pb0在apb2上)
6、如何控制外设时钟?通过控制时钟的寄存器,所以要去rcc寄存器中找对应总线的时钟寄存器(这里是RCC_APB2ENR)
7、找地址:rcc基地址+APB2外设时钟使能寄存器的偏移地址

至此,pb0端口已经使能,接下来要控制gpio的工作模式

8、确定模式,(这里要点灯,选推挽输出)
9、如何配置模式?找手册中"端口位配置表",看相应的寄存器在这里插入图片描述
注意!!!!
这里的cnf1 cnf0是指同一个寄存器cnfx的不同位,而不是后面所说的不同寄存器(cnf0,mode0)

10、接着到gpio寄存器中找cnf和mode寄存器,这里找到“端口配置低寄存器”(低对应gpiox端口的pin0~7)配置pb0的话,动cnf0和mode0
11、继续找地址

12、开始写代码。在这里插入图片描述在这里插入图片描述

查到是位3,所以要左移三位后进行或运算置1
下图是 端口配置低寄存器 发现需要低四位为0010

GPIOB_CRL&=~(0xf<<(4*0)); //清除低四位
GPIOB_CRL|=(2<<0);

在这里插入图片描述进行或之前要清零

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值