寄存器地址
STM32F103C8T6是M3内核,地址空间从0x00000000到0xffffffff,其中片上外设的地址从0x40000000到0x5fffffff,其中常用的GPIO就属于片上外设。各个片上外设的地址在该范围内依次细分。
其中常用的寄存器地址:
针对PC13这个IO口而言,它的基地址(起始地址)为0x4001 1000,第二个寄存器的偏移地址是0x04,所以第二个寄存器的地址为0x4001 1000 + 0x04,即0x4001 1004
所谓STM32,即能够以32为一个单位,STM32单片机可以同时处理32位的数据,这个可以从下面的寄存器文档中可以体现,设置下面的寄存器就需要写入32位的数据。
👆端口配置低寄存器,顾名思义,其配置的是GPIO0-GPIO7,对应的还有配置高寄存器,设置PC13就需要设置端口配置高寄存器。
总结:
- 设置GPIO的寄存器,首先要确定其基地址
- 以PC13为例子
- 首先需要确定GPIOC的基地址:为0x4001 1000
- 其次,根据需要设置GPIOC对应的IO口:低8位——GPIOC0到GPIO7,高8位——GPIOC8到GPIO15
STM32为了让用户更好的掌握单片机功耗,所以对每个外设的时钟都设置了开关,可以精确控制外设,关闭不需要的功能以免产生功耗。51单片机的外设使用的是一个时钟,没有给外设设置单独的开关,所以不需要设置外设时钟。因此在使用对应的外设时,就必须先打开对应的外设时钟。