一、通用输入/输出
GPIO主要完成二进制数据的输入与输出。系统有多个GPIO端口,每个端口可以支持一定数目的管脚。每个管脚可以配置为输入,也可配置为输出。
对于此GPIO而言,它有三个接口:用于配置是输入还是输出的CR、用于数据输出的ODR和锁存外部输入的IDR。由于不同管脚的输入/输出配置不同,因此管脚Pn有一个电控导通开关Tn来控制管脚是否为输出。Tn是否导通由信号Cn控制,Cn保存在寄存器(CR)的位n中。所要输出的电平值保存在输出数据寄存器(ODR)中,每位对应一个管脚的输出,位n的输出On连接导通开关,输入电平In连接输入数据寄存器(IDR)的输入端并锁存至位n。
GPIO通常用来读取外部按键、开关的通断信息、控制LED灯、蜂鸣器、电控开关等。除此之外若按照一定的时延控制GPIO的输出,则可以产生不同的波形。
二、定时/计数设备
1、时基单元
时基单元由计数器CNT、自动装载寄存器ARR、预分频器PSC。
定时器的核心是计数器,即每来一个计数时钟CNT,脉冲就产生一个计数动作,计数寄存器的值就加一减一。每一次加减都会表示时间过去了一个时钟周期。当计数器的值超过规定数值时自动装载初值,并产生一个标识更新事件UEV来表明计时结束(也称为超时)
预分频器将时钟PSC分频生成计数时钟CNT,当预分频器值为M时,CNT的周期为PSC的M+1倍,频率为PSC的1/(M+1)。
计数器总共有三种计数模式,即向上计数模式、向下计数模式和中央对齐模式。