查看电路原理图
GPIO内部引脚结构图。
1)内部上下拉电阻:决定默认引脚状态,VDD3.3V Vss–0VGND
2)默认引脚状态:上拉、下拉、浮空:不舍设置上下拉电压值由引脚所接的“外部外设”决定。
3)具体设置什么应该引脚接的是什么。
4)整个引脚的结构分为上下两部,输入/输出。
5)三种输入方式:一般数字输入,复用输入、模拟输入。
1)一般数字输入:TTL斯密特触发器作用,由于从引脚输入的高低电平信号不是很完美,所以需要经过斯密特触发器的修整,使信号稳定。
输入寄存器的作用:输入的数字信号(数据)将缓存在“输入数据寄存器”中,然后程序即可以从“输入数据寄存器”中读出输入的数据,拿到数据后,程序就可以根据需要来使用这个数据了。
2)复用功能:不经过“数据寄存器”,经TTL修整后,可以交给复用该引脚的其它“片内外设”的寄存器,之后接自己的要求使用。
使用复用输入,配置GPIO的寄存器外,还要配置USB、DMA、UART这些外设的寄存器,让这些片内外设工作后,才能接收“复用输入”的数据。
3)模拟输入:无须修整,输入到芯片内部后,交给处理模拟信号的“片内外设”,交给AD,AD就后进行模拟/数字的转换,将模拟信号变为数字信号,什么时候使用。
比如,温度传感器将温度转为模拟电信号后,需要通过模拟输入由芯片内部的AD,再将其转为数字信号。
4)三种输出:一般数字输出、复用输出、模拟输出。
1)一般数字输出:先写入复位/置位寄存器,再将数据导入“输出数据寄存器”然后输出。
下面还有一种,直接将数据写入“数据输出寄存器”,再输出。
每组GPIO16个引脚,共用相同的“输入数据寄存器“,”输出数据寄存器“”复位/置位寄存器”等。不过每组GPIO寄存器都是独立的。
“输出控制用于选择输出类型,数字信号可以有两种输出模式,推挽式和开漏式。推挽式输出,两个MOS管都工作,开漏输出只有一个N-MOS管工作,腿玩输出有更加强劲的输出能力,特殊要求时,才会选开漏输出。
2)复用输出:例:使用LCD相关复用,此时程序会先将图像数据交给"LCD片内外设”,然后通过复用输出路径将输出从引脚输出,交给LCD夜晶以供显示。
3)模拟输出:例:芯片内部DA将数字信号转换为模拟信号。