STM32F103C8T6 - 控制LED点亮熄灭

硬件连线

PB8 - PB15 → LED1 - LED8

寄存器地址确认

PortB起始地址
STM32F103C8T6 - 控制LED点亮熄灭_第1张图片STM32F103C8T6 - 控制LED点亮熄灭_第2张图片STM32F103C8T6 - 控制LED点亮熄灭_第3张图片

C语言操作寄存器(指针)

  1. ARM是内存与IO统一编址,所以ARM中的所有外设都是通过寄存器的方式操作
  2. 每个寄存器都有地址,C语言通过地址来操作寄存器位(位操作和指针)
  3. C指针常用技巧

代码实现

#include "stm32f10x.h"

#define GPIOB_CRH  0x40010C04
#define GPIOB_BSRR 0x40010C10
#define RCC_APB2ENR 0x40021018

void main(void)
{	
	*((unsigned int *)RCC_APB2ENR) = 0x00000008;
	//向CRH寄存器写内容
	//推挽输出模式
	*((unsigned int *)GPIOB_CRH) = 0x33333333;
	*((unsigned int *)GPIOB_BSRR) = 0x0000FF00;
	while(1);
}

如果使代码简化,也可以提前宏定义 ↓
在这里插入图片描述

你可能感兴趣的:(STM32,C语言)