这次主要学习了GPIO基本构造,温习一下。如正点原子PPT的图,主要构造有保护二极管,内部上拉电阻、下拉电阻,施密特触发器,P-MOS管,N-MOS管。
施密特触发器:
当输入电压高于正向阈值电压,输出为高;
当输入电压低于负向阈值电压,输出为低;
当输入在正负向阈值电压之间,输出不改变
内部上拉电阻、下拉电阻:
阻值只有40K欧左右,弱上拉、下拉电阻
P-MOS管,N-MOS管:
可以让GPIO实现三种状态,高电平,低电平,高阻态。P-MOS导通时会输出VDD,高电平。N-MOS管导通时会输出VSS,低电平。两个MOS管不可能都导通,会短路,只能一次导通一个,控制单片机引脚的不同状态。
高阻态,当单片机的某个引脚(通常为GPIO引脚)处于高阻态时,该引脚既不是高电平也不是低电平,而是处于一种悬浮状态,对外呈现非常高的电阻,几乎不消耗电流。
特点:
电阻极高,高阻态下,单片机引脚对外呈现极高的电阻,接近无穷大。无输出信号,处于高阻态的引脚不提供输出信号,即不对外提供电压或电流。接收外部信号,高阻态的引脚能够接收外部信号,作为输入引脚接收外部设备或信号源的电压信号。避免干扰,高阻态可以避免对外部电路造成影响,保持引脚电平不干扰外部设备。
ODR寄存器,全称为Output Data Register(输出数据寄存器),是微控制器用于设置或读取GPIO引脚输出状态的重要寄存器。
BSRR寄存器,全称为Bit Set/Reset Register(位设置/复位寄存器),是微控制器用于高效地控制GPIO引脚输出状态的一种机制。BSRR寄存器的主要功能是允许用户在一个操作内同时设置(置高电平)或复位(置低电平)多个GPIO引脚的状态。与ODR相比,BSRR寄存器提供了一种更高效的方式来控制GPIO引脚的输出,特别是在需要同时改变多个引脚状态的场景中。
八种输入/输出模式:
浮空,上拉和下拉输入模式都是对应的上下拉电阻控制,双MOS管不工作。模拟输入功能四个都关闭
①上拉电阻关闭/打开
②下拉电阻关闭/打开
③施密特触发器打开
④双MOS管不导通
开漏输出:
①上拉电阻关闭 ②下拉电阻关闭 ③施密特触发器打开 ④ P-MOS管始终不导通 ⑤往ODR对应位写0,N-MOS管导通,写1则N-MOS管不导通。
特点:不能输出高电平, 必须有外部(或内部)上拉才能输出高电平
开漏复用输出:
①上拉电阻关闭 ②下拉电阻关闭 ③施密特触发器打开 ④ P-MOS管始终不导通
特点:
1、不能输出高电平,必须有外部(或内部)上拉才能输出高电平
2、由其他外设控制输出
推挽输出:
①上拉电阻关闭 ②下拉电阻关闭 ③施密特触发器打开 ④往ODR对应位写0,N-MOS管导通,写1则P-MOS管导通
特点:可输出高低电平,驱动能力强
推挽式复用功能:
①上拉电阻关闭 ②下拉电阻关闭 ③施密特触发器打开
特点:
1、可输出高低电平, 驱动能力强
2、由其他外设控制输出
心得体会:我用的多的就是ADC,电机的模拟输入和推挽输出,其他的还不知道具体用法,到时候实践一下。