首先查看LED灯对应哪些GPIO口
这个野火指南者的RGB LED灯接PB5、PB0、PB1,IO口输出低电平LED灯亮。
1、使用寄存器地址点亮LED灯
GPIOB地址为0x4000 0C00,ODR寄存器地址偏移为00C,CRL寄存器地址相对偏移为0x00,CRH寄存器地址相对偏移为0x04。CRL 设置GPIOB 0成00——推挽输出,01——10MHz。
//GPIOB_0输出低电平
#include "stm32f10x.h"
int main(void)
{
//端口GPIOB时钟使能,在RCC_APB2EBR寄存器第3位
//RCC(复位和时钟控制)地址0x4002 0000;APB2 时钟使能地址偏移0x18
*(unsigned int *)0x40021018 |= ((1) << 3);
//设置成推挽输出,10MHz——0x0001
*(unsigned int *)0x40010C00 |= ((1) << 0);
//GPIOB_0输出低电平
*(unsigned int *)0x40010C0C &= ~(1 << 0);
//置位 |= (1<<4) 清零 &= ~(0<<4)
}
void SystemInit()
{
//函数体为空
}