1.1扩展板
1.2核心板
引脚连接
LED1----->PE10------->SOC
LED2----->PF10------->SOC
LED3----->PE8------->SOC
LED灯工作原理
当PE10引脚给高电平时,LD1灯点亮
当PE10引脚给低电平时,LD1灯熄灭
当PF10引脚给高电平时,LD2灯点亮
当PF10引脚给低电平时,LD2灯熄灭
当PE8引脚给高电平时,LD3灯点亮
RCC部分分析
确定RCC基地址
RCC相关寄存器
GPIO部分
GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR,GPIOx_ODR寄存器作用:
GPIOx_MODER:GPIO模式寄存器 ---->设置为输出/输入/复用/模拟模式
GPIOx_OTYPER:GPIO输出类型寄存器 ---->设置为推挽/开漏输出
GPIOx_OSPEEDR:GPIO输出速度寄存器
GPIOx_PUPDR:GPIO是否需要外接上下拉电阻 ------>上拉电阻/下拉电阻
GPIOx_ODR:GPIO输出数据寄存器 ------> 设置GPIO引脚输出高低电平
LED1------->PE10引脚为,进行分析
1.如何确定GPIOE_MODER寄存器地址?
地址 = 基地址 + 偏移地址 = 0x50006000 + 0x00 = 0x50006000
2.如何通过GPIOE_MODER寄存器设置PE10引脚为输出功能?
向0x50006000地址中第[21:20]写入01的值,就设置PE10引脚为输出模式
GPIOE_MODER[21:20] = 01 ----->设置PE10引脚为输出模式
LED2------->PF10引脚为,进行分析
1.如何确定GPIOE_MODER寄存器地址?
地址 = 基地址 + 偏移地址 = 0x50007000 + 0x00 = 0x50007000
2.如何通过GPIOE_MODER寄存器设置PF10引脚为输出功能?
向0x50007000地址中第[21:20]写入01的值,就设置PF10引脚为输出模式
GPIOE_MODER[21:20] = 01 ----->设置PF10引脚为输出模式
LED3同理
LED1------->PE10引脚为例,进行分析
1.如何确定GPIOE_OTYPER寄存器地址?
地址 = 基地址 + 偏移地址 = 0x50006000 + 0x04 = 0x50006004
2.如何通过GPIOE_OTYPER寄存器设置PE10引脚为推挽输出类型?
向 0x50006004地址中第[10]写入0的值,就设置PE10引脚为推挽输出类型
GPIOE_OTYPER[10] = 0 ----->设置PE10引脚为推挽输出类型
推挽输出模式,PMOS管和NMOS管都可以正常工作,输出高低电平
开漏输出模式
开漏输出:PMOS管不工作,只有NMOS管可以正常工作,输出低电平,如果想输出高电平,需要接上拉电阻
分析GPIOx_OSPEEDR寄存器
以LED1------->PE10引脚为例,进行分析
1.如何确定GPIOE_OSPEEDR寄存器地址?
地址