STM32
GPIOx_CRL(x=A~E)
地址偏移:端口配置的初始地址加上偏移地址就是该特殊寄存器的地址
GPIO通用输入输出8种工作模式
1.浮空输入模式:
(1)当GPIOx_CRL或GPIOx_CRH寄存器的CNF[1:0]位设置为01,并且MODE[1:0]位设置为00时
(2)STM32复位之后默认模式
2.输入上拉模式
(1)在浮空输入模式基础上使能输入电路中的上拉开关
(2)由输出数据寄存器(GPIOx_ODR)引脚对应位设置为1来使能上拉功能
3.输入下拉模式
4.模拟输入模式
5.开漏通用输出模式
GPIO的输出是由一个PMOS和一个NMOS组合形成的反相器驱动。开漏电路中的漏 是指MOS的漏级
(1)控制I/O引脚开漏输出高电平:
方法一、GPIOx_BSRR对应位置为1
方法二、直接置GPIOx_ODR对应位为1
效果:MOS控制线输出低电平,这时NMOS管截止(PMOS不被激活),引脚呈高阻态,不会有电流流动。
(2)控制I/O引脚开漏输出低电平:
方法一、GPIOx_BSRR或者GPIOx_BRR引脚对应外设置为1
方法二、直接置GPIOx_PDR对应位为0
效果:NMOS导通(PMOS不被激活)引脚呈低电平状态,允许有电流从引脚流入。
6.推挽通用输出模式:
(1)控制I/O开漏输出高电平:
方法一、GPOx_BSRR对应位置为1
方法二、直接置GPIOx_ODR对应位为1
效果:PMOS控制线输出低电平,此时PMOS导通,同时在NMOS输出低电平,此时NMOS截止,最终I/O引脚呈高电平状态,如果构成回路可有电流从引脚流出
(2)控制I/O引脚开漏输出低电平:
方法一、GPIOx_BSRR或者GPIOx_BRR引脚对应外设置为1.
方法二、直接置GPIOx_ODR对应位为0
效果:PMOS控制线输出高电平,此时PMOS截止,同时在NMOS控制器输出高电平,此时NMOS导通,最终I/O引脚呈低电平,如果构成回路可以有电流从引脚流入
7.推挽复用功能输出模式:
一个I/O引脚可以做为普通的IO接口,还可以做为其他外设的特殊功能引脚,有些引脚可能有4、5种不能功能。引脚复用为特殊功能引脚,引脚状态由外设决定。
8.开漏复用功能输出模式:
STM32的单片机每个功能模块有自己的时钟系统,所以要想要调用STM32单片机的功能模块时 必须先配置对应时钟,然后才能去操作相应的功能模块.端口重映射也一样
STM32可以使用三种不同的系统时钟SYSCLK:HSE 外部晶振/陶瓷谐振器,HSI 外部晶振/陶瓷谐振器,PLL锁相环时钟