前言
本文记录的是基于stm32f103vet6开发板,点亮led的过程。本例是以GPIOB的PB0 LED_G为例。
提示:以下是本篇文章正文内容,下面案例可供参考
一、原理图
由原理图,我们可以知道,GPIOB对应的引脚输出低电平,LED就会被点亮。 
二、芯片手册
1.点亮LED步骤
1、打开GPIOB的时钟 2、设置GPIOB为输出模式 3、将GPIOB对应的引脚输出低电平
2.相关寄存器
(1)RCC_APB2ENR   (2)端口配置低寄存器(GPIOx_CRL) (x=A..E) 
 (3)端口输出数据寄存器(GPIOx_ODR) (x=A…E)

三、代码
#if 0
#include <reg52.h>
sbit LED = P0^0
void main(void) {
P0 = 0xfe;
LED = 0;
return ;
}
#endif
#include "stm32f10x.h"
int main(void) {
*((unsigned int*) 0x40021018) |= (1 << 3);
*((unsigned int*) 0x40010c00) &= ~(16 << 0);
*((unsigned int*) 0x40010c00) |= (1 << 0);
*((unsigned int*) 0x40010c0c) &= ~(1 << 0);
return 0;
}
void SystemInit(void) {
return ;
}
总结
找相关寄存器的映射地址的时候,需要先找到它的基地址。通过存储器映像找到三个总线(APB1/APB2/AHB)的基地址,然后根据寄存器在哪个总线和偏移地址,就能算出寄存器的地址。
|