通过STM32F103寄存器点亮一盏LED

通过STM32F103寄存器点亮一盏LED

 首先我们需要配置GPIO的寄存器才能去控制GPIO,学习单片机我建议用通过动手去
 配置寄存器去学习比操作库更好地去明白学习单片机的原理。函数库的本质就是把
 配置好的寄存器封装起来,我们学习操作寄存器才是真正掌握单片机。   GPIO寄存
 器的一共有端口低位配置寄存器GPIOx->CRL,端口高位配置寄存器GPIOx->CRH
 、端口输入数据寄存器GPIOx->IDR、端口输出数据寄存器GPIOx-ODR、端午设置
 /清除寄存器GPIOx->BSRR、端口配置锁定寄存器GPIOx->BRR一共六个寄存器。
    我们点亮LED灯只需要用到端口低位配置寄存器GPIOx->CRL,端口高位配置寄存
    器GPIOx->CRH、端口输出数据寄存器GPIOx-ODR。    端口低位配置寄存器GPIOx->CRL,
    用于设置低位(0-7位)IO的输出的具体引脚的模式。端口高位配置寄存器GPIOx->CRH,用于
    设置低位(8-15位)IO的输出的具体引脚的模式。如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200610212054168.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjM0OTQxOQ==,size_16,color_FFFFFF,t_70)
 例如:配置PE5,PB5分布为上拉输入和推挽输出模式
 GPIOE->CRL=&0xFF0FFFFF//对相应位清零
 GPIOB->CRL=&0xFF0FFFF//对相应位清零
 GPIOE->CRL=|0xFF8FFFFF//对相应位清零
 GPIOE->ODR=1<<5//高电平是上拉,低电平是下拉
 GPIOB->CRL=|0xFF3FFFF//23:20位设置为0011
 数据输出寄存器GPIOx->ODR名称全称是Output Data Register。
 这些位可读可写并只能以字(16位)的形式操作。
 操作该寄存器可以达到控制寄存器高低电平
 。数据输入寄存器GPIOx->IDR名称全称是Intput Data Register。
 该寄存器只能进行读操作,获取IO状态。

硬件设计在这里插入图片描述
LED1一段和3.3V正极相连,负极和PE5相连,所以当PE5是低电平的时候就会导通。
下面开始写代码:建好工程和加入相关头文件后我们开始编程控制LED1按一秒的频率闪烁。

#include”led.h”

void LED_Init(	void	)
{ 
    RCC->APB2ENR=1<<6;//使能PORTE时钟
    RCC->APB2ENR=1<<3;//使能PORTB时钟
    GPIOE->CRL=&0xFF0FFFFF;//清零
    GPIOE->CRL=|0x0030000;//PE5推挽输出
    GPIOE->ODR=1<<5//PE5高电平 
    } 
    Int main(void)
    {
    LED_Init();
    While(1)
    {GPIOE->ODR=0<<5;
    //亮
    Delay_ms(1000);
    GPIOE->ODR=1<<5;
    //灭Delay_ms(1000); 
     
     } 
       }
       下载源码请加嵌入式+C#上位机学习资源QQ群:257536638

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值