企业网站制作报价单电商小程序名称
GPIO
General Purpose Input Output,通用输入输出端口,简称GPIO。
 作用:
- 采集外部器件的信息(输入)
 - 控制外部器件的工作(输出)
 

GPIO特点
 1,不同型号,IO口数量可能不一样,可通过选型手册快速查询
 2,快速翻转,每次翻转最快只需要两个时钟周期(F1最高速度可以到50Mhz)其实F103系统时钟72MHz,I/O口每次翻转最快达到36MHz,考虑超频到100MHz,F1最高速度就可以达到50MHz。
 3,每个IO口都可以做中断(传统51单片机只有INT0,INT1两个中断)
 4,支持8种工作模式
GPIO电气特性
 
 开发板实际接3.3V
GPIO引脚类型:
 
-  
电源引脚:以V字母开头的引脚
 -  
晶振引脚:外部低速晶振(32.768MHz)和外部高速晶振

 -  
复位引脚:NRST
 -  
下载引脚:串口下载引脚,SWD引脚,JTAG引脚
 -  
BOOT引脚:BOOT0,BOOT1(引脚复用PB2)
 -  
GPIO引脚:以P字母开头
 
不同芯片引脚分布情况
 
 GPIOA有0~15个IO口
IO引脚分布特点:按组存在、组数视芯片而定、每组最多16个IO引脚
IO端口基本结构介绍

 ① 保护二极管(要在之前加限流电阻,否则有可能被击穿)
 ② 内部上拉、下拉电阻
 ③ 施密特触发器
 ④ P-MOS & N-MOS管
 差别:上下拉电阻
斯密特触发器
 斯密特触发器就是一种整形电路,可以将非标准方波,整形成方波。
 
- 当输入电压高于正向阈值电压,输出为高电平。
 - 当输入电压低于负向阈值电压,输出为低电平。
 - 当输入在正负向阈值电压之间,输出不变。
 
作用:整形!如正弦波转方波
P-MOS & N-MOS管简介
 MOS管是压控型元件,通过控制栅源电压( Vgs )来实现导通或关闭。
 
 
 G:栅极
 S:源极
 D:漏极
P:Vgs<0,导通
 N:Vgs>0,导通
GPIO的8种工作模式

 GPIO工作模式:输入浮空
 ①上拉电阻关闭
 ②下拉电阻关闭
 ③施密特触发器打开
 ④双MOS管不导通
 特点:空闲时(高阻态,外部没有接任何东西),IO状态不确定,由外部环境决定。
输入上拉
 
 ①上拉电阻打开
 ②下拉电阻关闭
 ③施密特触发器打开
 ④双MOS管不导通
 特点:空闲时,IO呈现高电平
模拟功能
 
 ①上拉电阻关闭
 ②下拉电阻关闭
 ③施密特触发器关闭
 ④双MOS管不导通
 特点:专门用于模拟信号输入或输出,如:ADC和DAC
开漏输出
 
 ①上拉电阻关闭(输出时严格禁止)
 ②下拉电阻关闭
 ③施密特触发器打开
 ④ P-MOS管始终不导通(所以要接高电平VDD)
 ⑤往ODR对应位写0,N-MOS管导通(外部输出0),写1则N-MOS管不导通(高阻态)
 特点:不能输出高电平,必须有外部上拉才能输出高电平
开漏式复用功能
 
 ①上拉电阻关闭
 ②下拉电阻关闭
 ③施密特触发器打开
 ④ P-MOS管始终不导通
 由片上外设控制
 特点:1.不能输出高电平,必须有外部(或内部)上拉才能输出高电平。2.由其它外设控制输出
推挽输出
 
 ①上拉电阻关闭
 ②下拉电阻关闭
 ③施密特触发器打开
 ④往ODR对应位写0,N-MOS管导通,写1则P-MOS管导通
 特点:可输出高低电平,驱动能力强。
推挽式复用功能
 
 ①上拉电阻关闭
 ②下拉电阻关闭
 ③施密特触发器打开
特点:可输出高低电平,驱动能力强,由其它外设控制输出
1,F1在输出模式,禁止使用内部上下拉
 F4/F7/H7在输出模式,可以使用内部上下拉
2,不同系列IO翻转速度可能不同
GPIO寄存器

 
 端口配置低寄存器(CRL)- F1
 
 设置工作模式,输出速度。
 CRL和CRH共64个位,一组GPIO有16个口,所以平均4个位控制一个IO口。
 所以CRL控制Px0~Px7,8个IO口。
 所以CRL控制Px8~Px15,8个IO口。

 端口输出数据寄存器(ODR)-F1
 
 对应16个IO口,每个IO口一个位。
 输入上拉/下拉电阻通过ODR寄存器来设置
端口输入数据寄存器(IDR)– F1
 用于设置IO引脚输出的电平
 
 端口位设置/清除寄存器(BSRR)-F1
 
 用于间接控制ODR寄存器
ODR和BSRR寄存器控制输出有什么区别?
 ST官方给的答案:使用ODR,在读和修改访问之间产生中断时,可能会发生风险;BSRR则无风险。

 所以最好用BSRR寄存器控制输出
