了解总线矩阵
简单理解就是cortex m3 内核通过总线矩阵和各种各样的总线与外设进行交互
![](https://i-blog.csdnimg.cn/blog_migrate/0ba7bfaced66b0e77bfe80395dca36c1.jpeg)
查看文件了解
![](https://i-blog.csdnimg.cn/blog_migrate/02009f5540ab61bd1710fedde3398ad9.jpeg)
时钟的简单概念
通过总线的形式,将各种外设分开,可以独立的将各种外设来控制它的使能与否。控制外设使能与否就是控制外设的时钟。一般来说工作频率越高耗能越高。要使用GPIO就要把它的时钟打开,我们可以
由图可知GPIO是连接在APB2总线后的
如何寻找对于寄存器去编写编码
软件开发步骤:
1.找到指南针板的原理图
![](https://i-blog.csdnimg.cn/blog_migrate/e21e00a41a206882859e3464e7b1ae1f.png)
根据图指南者GPIO的LED灯要用到PB接口
要先开启使能控制口,拿到外设基地址0x40021000 偏移0x18
![](https://i-blog.csdnimg.cn/blog_migrate/da9be9e97483b0555a7f4e3113e385e3.jpeg)
偏移地址
![](https://i-blog.csdnimg.cn/blog_migrate/36fe22e2876a2888fe278e72d7fa564f.png)
找到了APB2地址,开启这个GPIO和地址寄存器
![](https://i-blog.csdnimg.cn/blog_migrate/c34529c65d34f6bd7d8dc5461b66c49f.jpeg)
开漏输出高电(上拉电阻)比较麻烦,所以我们配置推挽输出 开漏输出与推挽输出
输出模式位:可以控制输出的速度。速度指GPIO电平的反转速度
2.通过查阅参考手册的GPIO章节,知道了要配置推挽输出模式。通过端口配置表展示的寄存器来进行配置。
![](https://i-blog.csdnimg.cn/blog_migrate/80f6fde4203461923fac7a2883d2f956.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c3f905e91b973da3dec2f19e9eff37cb.png)
端口输出数据寄存器GPIOx_ODR
![](https://i-blog.csdnimg.cn/blog_migrate/917696539da51ab716d111f1ae516d2d.jpeg)
还是要知道外设基地址和偏移量
GPIOB 0X4001 0C00 CRL偏移0x00H ODR偏移0CH
本文章梳理了思路和使用参考文件