点亮LED灯的实现:从寄存器到库函数方式

目标:点亮接在STM32的PC13脚的LED灯。

一、无名字寄存器方式

不是通过名字来访问寄存器,而是用寄存器的地址去访问,所以首先把地址摆出:

1、打开PC13对应的时钟

红框中RCC的APB2外设时钟使能寄存器RCC_APB2ENR,其偏移地址是0X18,那么地址是

0X40021000+0X18=0X40021018  

                                                  RCC_APB2ENR

把其中的第4位置1,使能开启PC(GPIOC)的时钟

                   *(unsigned int*) 0x40021018 |=(1<<4);  

2、配置PC13端口

对应寄存器组所在位置,基地址是0X40011000

 (1)设置GPIOC端口配置寄存器,使PC13为输出模式

GPIOC端口配置寄存器分为——低GPIOC_CRL,偏移地址0X00,负责第0-7引脚

                                          ——高GPIOC_CRH,偏移地址0X04,负责第8-15引脚

所以PC13应用端口配置高寄存器 GPIOC_CRH

配置方法如图示:

                                                             分为8组,每组4位

 MODE13选01, CNF13选00,这四位二进制数为0001。采用移位的方法,移13-8=5组,4*5=20位。

    *(unsigned int*)(0x40011000+0x04)&=~(0x0F<<(4*5));  //把13组清零
    *(unsigned int*)(0x40011000+0x04)|=(1<<(4*5));    //把13组置为0001

(2)设置端口输出寄存器GPIOC_ODR,使PC13输出低或高电平,点亮或熄灭LED灯

       *(unsigned int*)0x4001100C &= ~(1<<13);//配置输出低电平, 点亮LED

       *(unsigned int*)0x4001100C |= (1<<13);//配置输出高电平 

处理过程是,开启相关端口的生命跳动时钟——确定有关引脚的角色和模式——工作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值