STM32学习进程
STM32学习杂篇记录
STM32的8种输入输出自我见解
1.输入浮空(GPIO_Mode_IN_FLOATING):浮空就是逻辑器件与引脚即不接高电平也不接低电平。浮空最大的特点就是电压的不确定性,一般用在KEY识别、数据传输RX,这样可以减少上下拉电阻对结果的影响。
2.输入上拉(GPIO_Mode_IPU):上拉就是把电位拉高,比如拉到Vcc,上拉就是把不确定的信号通过一个电阻定位在高电平状态,同时上拉还具有限流的作用。
3.输入下拉(GPIO_Mode_IPD):下拉就是把电位拉低,拉到GND,原理与上拉相似。
4.模拟输入(GPIO_Mode_AIN):模拟输入是指传统方式的输入,数字输入是输入PCM数字信号(0,1二进制数字信号),通过数模转换成模拟信号,经过前级放大进入功率放大器,功率放大器还是模拟的。应用ADC模拟输入,或者低功耗下省电。
————————————
5.开漏输出(GPIO_Mode_Out_OD):输出端相当于三极管的集电极(e极),要得到高电平状态必须要上拉电阻才行,适用于做电流型的驱动,其吸收电流的能力相对较强一些(一般在20mA以下)。应用于IIC总线,STM32开漏输出如果不加接上拉电阻只能输出0。
6.开漏复用输出(GPIO_Mode_AF_OD):自我理解为GPIO口被用作第二功能时的配置情况(即并非作为通用的IO口使用)。端口必须配置成复用功能输出模式(开漏或者推挽)。
7.推挽输出(GPIO_Mode_Out_PP):可以输出高、低电平,连接数字器件,推结构一般是指俩个三极管分别受到互补信号的控制,总是在一个三极管导通时另一个截止。高低电平由IC电源确定。推挽电路是由俩个参数相同的三极管或者MOSFET,以推挽方式存在于电路中,各负责正负半周期的波形方法任务,电路工作时,俩只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。输出可以向负载灌输电流。推挽输出即提高电路的负载能力,又提高开关速度。
8.推挽复用输出(GPIO_Mode_AF_PP):自我理解为GPIO口被用作第二功能时的配置情况(即并非作为通用的IO口使用)。端口必须配置成复用功能输出模式(开漏或者推挽)。
GIPO配置
每个GPIO端口有俩个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),俩个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32位 置位/复位 寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR),一个32位锁定寄存器(GPIOx_LCKR);每个GPIO端口可以配置多种模式。每个I/O口都可以自由编程,但是必须按32位字被访问(不允许半字节或字节访问)BSRR和BRR允许任何寄存器的 读/改 的独立访问。
STM32引脚速度GPIO_Speed
GPIO输出模式下,几种速度的区别:GPIO引脚速度(GPIO_Speed_2Hz,GPIO_Speed_10Hz,GPIO_Speed_50Hz)
1.GPIO引脚速度又称输出驱动电路的响应速度(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,我们自己可以根据自己的需要选择合适的驱动电路,通过速度选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的),理解为输出驱动电路的带宽:即一个驱动电路可以不失真的通过信号的最大频率,如果一个信号的频率超过了驱动电路的响应速度就可能信号失真。GPIO的引脚速度跟应用相匹配,速度配置越高,噪声越大,功耗越大
2.GPIO的翻转速度是指:输入/输出寄存器的0,1值反映到外部引脚(APB2)上高低电平的时间。
3.GPIO的输出速度(与自己设定的程序有关)
(1)GPIO口设为输入时,输出驱动电路与端口是断开的,所以输出速度配置毫无意义
(2)在复位期间和刚复位后,复用功能开启,I/O端口被配置成浮空输入模式
(3)所以的端口都有外部中断能力,为了使用外部中断线,端口必须配置为输入模式
(4)GPIO的配置具有上锁功能,当配置好GPIO后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁
引脚的复用功能、重映射
1.复用功能:内置外设与I/O口共用引出管脚(不同的功能对应同一引脚)。STM32所有内置外设的外部引脚都是与标准GPIO引脚复用的,如果复用功能模块对应同一引脚,只能使能其中之一,其他模块保持非使能状态。
2.重映射功能:复用功能的引脚可以通过重映射,从不同的I/O管脚引出,即复用功能时可以通过程序改变到其它引脚上!
直接好处:PCB电路板的设计人员可以在需要的情况下,不必把某些信号在不板上绕一大圈完成连接,方便了PCB设计的同时,也减少了信号的交叉干扰。
如:USART1,0:没有重映射(TX/PA9,RX/PA10) 1:重映射(TX/PB6,RX/PB7)
3.一般一下复用功能的引出脚有重映射功能
(1)晶体振荡器的引脚在不接晶体时,可以作为普通I/O口
(2)CAN模块
(3)JTAG调试接口
(4)大部分定时器的引出接口
(5)大部分USART引出接口
(6)IIC1的引出接口
(7)SPI1的引出接口

浙公网安备 33010602011771号