1、在单片机原理图中找到LED灯,例如要让RGB灯亮绿色,即使PB0端口置低电平。
2、找到与PB0对应的GPIOB寄存器,最后1位即PB0,只要将此位置低电平,灯就会亮了。
3、端口配置低寄存器GPIOx-CRL(低八位配置),每位由4位进行输入输出控制(PB0由红框圈出4位控制)
在此,我们配置其为推挽输出,速度10MHz,即最后四位为0001
4、配置时钟,找到APB2外设时钟使能寄存器
第三位为PB口的时钟
第三位 置1时钟开启
总线为AHB,要注意各寄存器的起始地址和偏移地址。
#include "stm32f10x.h"
int main(void)
{
*(unsigned int *)0x40021018 |=((1)<<3);//打开GPIOB端口的时钟
*(unsigned int *)0x40010c00 |=((1)<<(4*0));//配置I/O输出,四位控制一个口,推挽输出00,模式01
*(unsigned int *)0x40010c0c &=~(1<<0);//配置ODR寄存器。1左移0位,再与,将最低位置1
}
void SystemInit(void)
{
}
寄存器位置均由起始地址+偏移地址组成。
SystenInit函数是为了骗过编译器不报错。
stm32f10x.h文件是在程序文件夹中的一个.h的空文件,其实里面什么都没有。
这样烧录进单片机就能点亮绿灯了。