一、引脚和GPIO的区别和联系
STM32的引脚中,有部分是做GPIO使用,部分是电源引脚/复位引脚/启动模式引脚/晶振引脚/调试下载引脚
二、IO
一共有9组IO:PA~pi
其中PA~PH每组16个IO PI只有PI0~PI11
一共有140个IO
三、有限的引脚实现更多功能
STM32的大部分引脚除了当GPIO外,还可以复用为外设功能引脚(比如串口),一个引脚,可以作为IO口,同时也可以复用功能外设引脚。
四、GPIO的8种工作模式
4种输入模式:
输入浮空 输入上拉 输入下拉 模拟输入
4种输出模式(带上下拉)
开漏输出(带上拉或者下拉)
开漏复用功能(带上拉或者下拉)
推挽式输出(带上拉或者下拉)
推挽式复用功能(带上拉或者下拉)
五、4种最大输出速度
在F767的参考手册中直接描述为低中快高速, (单位:MHZ)2—低速 25—中速 50—快速 100—高速
六、IO口基本结构
(Q:如何理解5v容忍)
在数字电平的规范中,有很多电压都被设置为逻辑电平,比较典型的有5V,3.3V,2.5V,1.8V,1.2V等等,通常的规律是电路运行的速度越快,使用的逻辑电平电压越低。
而STM32使用的是3.3V的逻辑电平,各个引脚输出与输入的逻辑电平应该是3.3V,ST公司为了增加芯片的兼容性,实现了对5V逻辑电平的容忍,意思是可以正常识别5V的逻辑电平信号而不至于因为逻辑电平电压高于自身的3.3V标准而损坏芯片,这里的容忍就是正常识别不损坏的意思。
①输入工作模式1——输入浮空状态
IO口电平直接经过施密特触发器到达输入数据寄存器,CPU直接从输入数据寄存器读取IO口状态。
上拉起作用,而下拉不起作用
下拉电阻接VSS,上拉电阻不起作用
ADC会把模拟信号转换为数字信号
推挽输出:可以输出强高低电平,连接数字器件
开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适用于做点流行的驱动,其吸收电流的能力相对强(一般20mA以内)。
七、上电复位后IO口状态
上电复位后,GPIO默认为输入浮空状态,部分特殊功能引脚为特定状态。
复位后,调试引脚处于复用功能上拉、下拉状态;
PA15:JTDI处于上拉状态
PA14:JTCK/SWCLK处于下拉状态
PA13:JTMS、SWDAT处于下拉状态
PB4:NJTRST处于上拉状态
PB3:JTDO处于浮空状态