通用IO功能描述GPIO端口
24个GPIO引脚可分为三组端口:PA、PB、PC。根据它们在GPIO寄存器中的位,每组端口中的GPIO又分别编号为0-7。
注:由于GPIO端口寄存器的功能是相同的,使用符号Px代表PA、PB、PC。例如,GPIO_PxIN代表寄存器GPIO_PAIN、GPIO_PBIN、GPIO_PCIN。
三组GPIO端口中的任何一组都有以下的这些寄存器,它们的低8位对应端口中的8个GPIO引脚:
● GPIO_PxIN(输入数据寄存器)返回引脚的电平(模拟模式除外)。
● GPIO_PxOUT(输出数据寄存器)在正常输出模式下控制输出电平。
● GPIO_PxCLR(清除输出数据寄存器)清除GPIO_PxOUT中的位。
● GPIO_PxSET(设置输出数据寄存器)设置GPIO_PxOUT中的位。
● GPIO_PxWAKE(唤醒监控寄存器)指定能够唤醒STM32W108的引脚。
除了这些寄存器,每个端口还有一对配置寄存器,GPIO_PxCFGH和 GPIO_PxCFGL。这些寄存器为端口引脚指定了基本操作模式。GPIO_PxCFGL配置引脚Px[3:0],GPIO_PxCFGH配置引脚Px[7:4],符号GPIO_PxCFGH/L指的就是这一对配置寄存器。
PA6、PA7、PB6、PB7和PC0 5个GPIO引脚可以实现比一般标准通用输出更强的输出电流。
配置
每个引脚在GPIO_PxCFGH/L寄存器中都有一个4位的配置值,不同的GPIO模式和其对应的4位配置值参考表6.1。
如果一个GPIO有两个外设,可以作为复用输出模式数据源,那么除了GPIO_PxCFGH/L寄存器,还需要其它寄存器共同决定哪个外设控制输出。
定时器2和串口控制器可以与多个GPIO共享一个复用输出引脚,定时器2的TIM2_OR寄存器中的一些位控制定时器2的输出到不同的GPIO引脚,TIM2_CCER寄存器中的一些位使能定时器2的输出。在定时器2输出使能的情况下,它们会覆盖串口控制器的输出。根据寄存器TIM2_OR中的一些位,表6.2显示了GPIO对于定时器2的输出映射。
当输出配置为串口控制时,串行接口模式寄存器(SCx_MODE)决定GPIO的引脚如何被使用。
PA4和PA5的复用输出既可以提供跟踪数据包PTI_EN和PTI_DATA,也可以同步CPU跟踪数据TRACEDATA2和TRACEDATA3。
如果在复用输出模式下GPIO与外设无关,它的输出将被设置为0。