在Smart Micro MM32L0产品中,每个GPIO端口具有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位位置/复位寄存器(GPIOx_BSRR)和一个16位复位寄存器(GPIOx_BRR),32位锁定寄存器(GPIOx_LCKR)和两个备用功能选择寄存器(GPIOx_AFRH)和(GPIOx_AFRL)。
每个I / O端口都可以自由编程,但是必须以32位字访问I / O端口寄存器(不允许半字或字节访问)。
GPIOx_BSRR和GPIOx_BRR寄存器允许独立访问以读取/更改任何GPIO寄存器。
这样,在读取和更改访问之间生成的IRQ不会很危险。
图1. I / O端口位的基本结构1.输入浮动的详细说明:浮动意味着逻辑设备的输入引脚既不连接到高电平,也不连接到低电平。
在一般实际使用中,不建议将引脚悬空,因为它们容易受到干扰。
2.输入上拉和下拉详细说明:上拉是将电位拉高,例如,拉至Vcc。
上拉是通过电阻将不确定信号拉至高电平!弱和强只是上拉电阻的电阻不同,没有严格的区别。
在MM32L0xxx中,上拉电阻为40k欧姆。
3.详细的模拟输入:模拟输入是指模拟信号的输入。
当配置模拟输入时,所有的上拉,下拉电阻和施密特触发器都处于禁用状态,因此,“输入数据寄存器”被设置为“禁用”。
它将不会反映端口上的电平状态,也就是说,CPU无法在“输入数据寄存器”中读取有效数据。
4.开漏输出的详细说明:输出端子等效于晶体管的集电极,可以通过访问输入数据寄存器来获得I / O状态。
可以做不同的电压信号转换;多个同时级联也可以实现线路和逻辑)。
5.推挽输出的详细说明:它可以输出高电平和低电平,并连接到数字设备;推挽结构通常意味着两个晶体管由两个互补信号控制,而一个晶体管导通时另一个晶体管总是被截止。
高电平和低电平由IC的电源决定。
6.多路复用功能的详细说明:可以将GPIO端口用作第二功能(即,不用作通用IO端口)时的配置。
该端口必须配置为多路复用功能输出模式(推挽或漏极开路)。
q