硬件:首先在硬件中我们看到了RGB灯的硬件电路图
现在我们用寄存器的方法来操作这几个灯:
1,先定义硬件的宏
#define GPIOB_CRL 0x40010C00
#define GPIOB_ODR 0x40010C0C
#define RCC_APB2NER 0x40021018 //在这里我们打开了内部的时钟并且定义了硬件的地址
#define GPIOB_BSRR 0x40021010
//我们现在在函数中配置寄存器, 先让RGB亮绿灯,
//现在打开内部时钟,配置为输出模式,并且输出速率为50Mhz
*((unsigned int *)RCC_APB2NER) = 0x00000008;
//现在配置GPIOB_CRL寄存器、因为我的引脚是0、1、5,所以我配置CRL就可以了
*((unsigned int *)GPIOB_CRL) = 0x00003333;
//现在我用GPIOB_ODR寄存器来操作输出引脚的电平
//从电路图中可知,操作RGB等是低电平有效,要想操作
//寄存器使绿灯发光,应该配置寄存器为如下
*((unsigned int *)GPIOB_ODR) = 0x0000000E;
现在我们看得到了绿灯的亮灯效果