STM32F103RB有4个IO口(A~D),每个IO口都有7个寄存器控制,他们分别是:
端口配置寄存器(32位,共两个,CRL和CRH)
数据寄存器(32位,共两个,IDR和ODR)
置位/复位寄存器(32位,一个,BSRR)
复位寄存器(16位,一个,BRR)
锁存寄存器(32位,一个,LCKR)
常用的IO寄存器只有四个,即CRL、CRH、IDR、ODR,他们分别是设置IO口工作状态和输入/输出数据的,其中CRL和CRH共2个32位寄存器控制16个IO口的状态(CRL和CRH完全一样,只是CRL控制的是低8位输出口GPIOx(0:7),CRH控制的是高八位GPIOx(8:15)),即每四位控制一个IO口状态(高2位CNF,低2位MODE),寄存器情况如图所示:
STM32的IO口可以由软件配置成为8种模式: