【【萌新的STM32学习-12】】

萌新的STM32学习-12

GPIO八种模式
1输入浮空
输入用,完全浮空,状态不定
【【萌新的STM32学习-12】】_第1张图片
2输入上拉
输入用,用内部上拉,默认是高电平
【【萌新的STM32学习-12】】_第2张图片
3输入下拉
输入用,用内部下拉,默认是低电平
【【萌新的STM32学习-12】】_第3张图片
4模拟功能
ADC DAC
【【萌新的STM32学习-12】】_第4张图片
5开漏输出
软件IIC的SDL,SCL等
开漏模式下的PMOS并不会导通 始终处于高阻状态
必须在最后接入外部上拉 才能输出高电平
【【萌新的STM32学习-12】】_第5张图片
6推挽输出
驱动能力强,25mA (max) 通用输出
【【萌新的STM32学习-12】】_第6张图片
7开漏式复用功能
片上外设功能(硬件IIC的SDL,SCL引脚等)
必须接入一个外部上拉才能输出高电平
【【萌新的STM32学习-12】】_第7张图片
8.推挽式复用功能
片上外设功能(SPI的SCK,MISO,MOSI引脚等)
【【萌新的STM32学习-12】】_第8张图片
【【萌新的STM32学习-12】】_第9张图片
F1在输出模式下,禁止使用内部上下拉

STM32F1 每组(这里是 A~D)通用 GPIO 口有 7 个 32 位寄存器控制,包括 :
2 个 32 位端口配置寄存器(CRL 和 CRH)
2 个 32 位端口数据寄存器(IDR 和 ODR)
1 个 32 位端口置位/复位寄存器(BSRR)
1 个 16 位端口复位寄存器(BRR)
1 个 32 位端口锁定寄存器 (LCKR)
这个意思就是我GPIOA有对应的7个寄存器 接下来GPIOB也有七个对应的寄存器 就是这种意思

对于F1 芯片来说
CRL CRH 配置工作模式,输出速度
IDR  输入数据
ODR 输出数据
BSRR 设置ODR寄存器的值
BRR F4之后没有这个寄存器,考虑代码的兼容性不建议使用
LCKR 配置锁定,用的不多
所以学习F1一般来说只要配置前面这五个寄存器即可
端口配置寄存器(GPIOx_CRL 和 GPIOx_CRH)
这两个寄存器都是 GPIO 口配置寄存器,不过 CRL 控制端口的低八位,CRH 控制端口的
高八位。寄存器的作用是控制 GPIO 口的工作模式和工作速度
【【萌新的STM32学习-12】】_第10张图片
【【萌新的STM32学习-12】】_第11张图片
他的意思是这样的 
从外部来看我们有很多个GPIO 分为ABCDEF等等
每个GPIO都有16个引脚 每个引脚的名字是PA0到PA15
这是外部的看法
对于内部 引脚自然会有引脚的功能传入的模式 状态 频率 等 那么我们就用剩下的内部的七个寄存器来搞定各个引脚的功能
第一个寄存器32位的分为CRL和CRH 各控制了PA0带PA7 或者是PA8 到PA15
因为我们工作模式多 所以设置了每4位来确定一个引脚的工作模式和速度 16x4=64 所以就需要2个32位的寄存器

你可能感兴趣的:(stm32学习,stm32,学习,性能优化)