参考海创电子的STM32视频。
1.寄存器地址
视频中LED连接单片机的PC13接口
GPIOC的起始地址为:0x4001 1000(也叫做GPIOC的基地址)
第1个寄存器地址为0x4001 1000(注意偏移地址)
第2个寄存器地址为0x4001 1004(每个寄存器占用4个字节)
2.寄存器配置原理
1个寄存器占用4个字节,图示方框中为引脚0的寄存器,想使小灯点亮,应该是输出模式。(图示为端口配置低寄存器,最多到引脚7,还有端口配置高寄存器)
在STM32中,每使用一个引脚就要开启对应的时钟。
点亮LED思路:
1.打开PC13对应时钟
2.配置输出,确定输出模式
3.输出低电平
3.怎样打开对应时钟
查阅参考手册,找出时钟控制的地址。
偏移地址为:0x18,所以PC13对应的地址为:0x4002 1018
(单片机认为它只是一个数值,所以需要转换成单片机能识别的地址!)
*(unsigned int*)0x4002 1018|=(1<<4);//将1左移4位
点亮小灯程序如下:
int main()
{
*(unsigned int*)0x40021018|=(1<<4);//打开GPIO时钟
*(unsigned int*)0x40011004&=~(0x0F<<4*5);//配置输出模式
*(unsigned int*)0x40011004|=(1<<(4*5));
*(unsigned int*)0x4001100C&=~(1<<13);//配置输出低电平
while(1);
{
}
}