汇编语言:点亮LED灯

框架步骤:基于FS6818板子

1.分析电路图 2. 分析芯片手册 3. 编写代码 4. 下载调试

1、分析电路
1)在PCB板上找到LED所在的位置,旁边有丝印的编号“RGBLED1”
2)在原理图上搜索“RGBLED1”,找到LED灯对应的原理图,找到网络标号MCU_CAM1_PCLK,该标号应该连接到一个GPIO的一个引脚上,在核心板上搜索MCU_CAM1_PCLK
汇编语言:点亮LED灯_第1张图片
汇编语言:点亮LED灯_第2张图片在这里插入图片描述
3)通过以上分析红色LED灯由SOC的GPIOA28引脚进行驱动。编写程序让GPIOA28引脚输出高电平,点亮红色LED灯,让GPIOA28引脚输出低电平,熄灭红色LED灯
2、分析芯片手册
汇编语言:点亮LED灯_第3张图片
特殊功能寄存器在SOC上,是片内内存,有地址的内存,是特殊的寄存器,其不同于R0-R15,C/APSR这些寄存器,也不同于普通内存,所以理解为在SOC芯片上的内存寄存器。
特殊功能控制寄存器属于内存在0-4G上的一块空间,访问特殊功能控制寄存器通过内存的地址进行访问。每个占4个字节空间。向SOC的外设对应的特殊功能控制器中写入对应的值或者读取值,就可以简介的控制SOC的外设进行动作,这就是软件编程控制硬件的思想。

1.)设置GPIO引脚为GPIO功能:GPIOx.Alternate Function Select regsiter
功能:设置GPIO引脚功能选择寄存器
GPIOAALTFN0地址 = 基地址+偏移地址 = 0xC001_A020
GPIOAALTFN1地址 = 基地址+偏移地址 = 0xC001_A024
因此需要设置GPIOXALTFN1[25:24]------>GPIOA28
GPIOAALTFN1寄存器对应的地址0xC001_A024,
给这个地址的[25:24]位写0b00,GPIOA28引脚为GPIO功能

2.)设置GPIO引脚为输出功能:GPIOx Output Enable register
功能:设置GPIO引脚为输入模式换是输出模式
GPIOAOUTENB地址 = 基地址+偏移地址 = 0xC001_A004
GPIOAOUTENB这个寄存器管理这GPIOA这一组的32个引脚。引脚编号从0-31
因此需要设置GPIOAOUTENB[28]------>GPIOA28
GPIOAOUTENB寄存器对应的地址0xC001_A004,
给这个地址的28位写1,GPIOA28引脚为输出模式,
给这个地址的28位写0,GPIOA28引脚为输入模式。

3.)设置GPIO引脚输出高低电平:GPIOx Output Register
功能:设置GPIO引脚输出高低电平的
GPIOAOUT地址 = 基地址+偏移地址 = 0xC001_A000
GPIOAOUT这个寄存器管理这GPIOA这一组的32个引脚。引脚编号从0-31
因此需要设置GPIOAOUT[28]------>GPIOA28
GPIOAOUT寄存器对应的地址0xC001_A000,
给这个地址的28位写1,GPIOA28引脚输出高电平,
给这个地址的28位写0,GPIOA28引脚输出低电平。

你可能感兴趣的:(汇编芝士)