STM32寄存器点亮led

本文详细介绍了在STM32F103开发板上,通过HAL库操作RCC和GPIO寄存器,实现LED灯的点亮和熄灭。首先启用APB2时钟,配置GPIOC_CRL寄存器以设置PC0为输出,然后通过ODR设置LED状态。
摘要由CSDN通过智能技术生成

前言

        本文章是于hal库进行生成操作的,参考了stm32f103数据手RCC,和gpio外设寄存器,被操作是在普中stm32f103zet6开发板完成。

查看原理图

        我们可以看到此开发板的led灯接到单片机的PC口,并且是共阳极连接,此时我们只需要给他一个低电平就可以点亮ta。

查看手册

       

        我们打开stm32f103数据手册找到框架图查看gpioc挂在那个总线上,我们可以在框架图看到ta挂在了APB2总线上,接下来我们转到参考手册找到RCC寄存器描述,找到,APB2 外设时钟使能寄存器(RCC_APB2ENR)

              接下来我们在程序里就对这个寄存器进行操作。

操作 RCC_APB2ENR 寄存器

RCC->APB2ENR|=(1<<4);

我们直接与上1<<4位将IOPCEN位置1即可开启端口时钟。

查看手册GPIO相关寄存器

         我们先找到 端口配置低寄存器(GPIOx_CRL) 

        因为我们要配置第一个led灯(PC0)点亮所以我们选择CRL低位配置寄存器,接下来我们进行配置,我们可以看到一个IO口涉及到4位寄存器配置,前两位用与配置端口的模式,后两位用于配置端口的速度,接下来我们开始配置。

操作 GPIOx_CRL 寄存器

GPIOC->CRL|=0X03<<(0*4);

        我们将PC端口配置为输出推完模式,且输出模式霞最大速度位50MHZ,及0x03,因为一个io配置是4位所以我们配置地址以4位向前移,因为我们配置的PC0所以向前移动0位。

数据输出寄存器ODR

        

        接下来我们配置端口输出数据寄存器,就是让ta输出1还是0,下面上代码

GPIOC->ODR&=~(1<<0);

        我们直接配置ODR寄存器的第0位让他输出0即可。

        到这里我们就配置完了,我们看看效果吧。

结果

        

成功点亮

如果要让ta熄灭d话直接对输出数据寄存器写1即可

GPIOC->ODR|=(1<<0);

完整代码

int main(void)
{
  /* USER CODE BEGIN 1 */

	RCC->APB2ENR|=(1<<4);
	GPIOC->CRL|=0X03<<(0*4);
	GPIOC->ODR&=~(1<<0);
	
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值