配置每组IO口的寄存器:(每一组一套寄存器)
1、两个32位的配置寄存器;GPIOx_CRL,GPIOx_CRH
2、两个32位的数据寄存器:GPIOx_IDR,GPIOx_ODR
3、一个32位置位/复位寄存器:GPIOx_BSRR
4、一个16位的复位寄存器GPIOx_BRR
5、一个32位的锁定寄存器GPIOx_LCKR
详解 :
CRL和CRH控制IO口,是四个位控制一个口,所以要两个32位的来控制16个口
1、GPIOx_CRL:端口配置低寄存器:
每个口由四位控制,为MODE+CNF联合配置,具体模式在下图中。(输入要与输入对应,输出也要与输出对应)
具体对应输入输出配置表(对上图的详解):
2、GPIOx_CRH:端口配置高寄存器(与低配置寄存器一样,这里把配置图放这,供大家参考)
3、GPIOx_IDR:端口数据输入寄存器:
32位寄存器其中16-31位一直保留,始终为0;0-15位则对应着16个IO口,1为高电平,0为低电平。
4、GPIOx_ODR:端口数据输出寄存器:
与数据输入的配置差不多,但是ODR在输入模式下可以控制上升沿和下降沿的配置!(前面也提到)
5、GPIOx_BSRR:端口位设置/清除寄存器:
BSRR比之上面的寄存器有些复杂,但也不是很难,32位分两个16位高和低,共同控制ODR数据输出寄存器的每一位输出;具体的控制方式在下图中。高低位0不产生影响,高位置1则对应ODR位为0.低位置1则对应ODR为1;高低位同事作用时,则只有低16位起作用!
6、GPIOx_BRR:端口位清除寄存器:
该寄存器与上面BSRR高16位作用相同,F1中有些赘余,但F4中已优化。
锁定寄存器不常用到,我在就没有详细了解,今天就写到这里吧!
以上就是常用寄存器配置的讲解!
文章来源于:电子工程世界 原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。