步骤:看原理图确定引脚+看主芯片手册确定引脚控制方法+码代码
不管怎样LED都是由两个引脚
LED符号
典型点亮LED方法
LED电阻一般很小
由于电阻非常小,电流太大容易烧掉,所以需要串联一个电阻
如果接到控制芯片呢?
控制芯片无非就是有很多引脚,通用引脚GPIO可以设定高低电平
两种方案,大同小异。
如果引脚驱动能力不够呢?不是所有引脚都是很强劲的。有些芯片为了省电,电压很低,怎么破?三极管也称为晶体管出来了
- 一般都是主芯片引脚输出高低电平改变LED状态,具体高低点亮就要看芯片原理图
- 然后就要看芯片手册,怎么控制引脚输出高低电平
- 不关心GPIO引脚输出的电平是多少,3.3V或1.3V,简称输出1或0代表高低电平
第四个引脚接地,比较正统
- 三极管厉害的地方在于:它可以通过小电流控制大电流
假设三极管是个大坝,这个大坝奇怪的地方是,有两个阀门,一个大阀门,一个小阀门。小阀门可以用人力打开,大阀门很重,人力是打不开的,只能通过小阀门的水力打开。所以,平常的工作流程便是,每当放水的时候,人们就打开小阀门,很小的水流涓涓流出,这涓涓细流冲击大阀门的开关,大阀门随之打开,汹涌的江水滔滔流下。
如果不停地改变小阀门开启的大小,那么大阀门也相应地不停改变,假若能严格地按比例改变,那么,完美的控制就完成了。
在这里,be流向就是小水流,ce流向就是大水流,人就是输入信号。当然,如果把水流比为电流的话,会更确切,因为三极管毕竟是一个电流控制元件 。
- 截止区:应该是那个小的阀门开启的还不够,不能打开打阀门,这种情况是截止区。
- 饱和区:应该是小的阀门开启的太大了,以至于大阀门里放出的水流已经到了它极限的流量,但是 你关小 小阀门的话,可以让三极管工作状态从饱和区返回到线性区。
- 线性区:就是水流处于可调节的状态。
- 击穿区:比如有水流存在一个水库中,水位太高(相应与Vce太大),导致有缺口产生,水流流出。而且,随着小阀门的开启,这个击穿电压变低,就是更容易击穿了。
n表示低电平有效,低电平表示灯亮。通过原理图看到GPF4
- SOC(System on chip)片上系统
- GPIO(Gernel Purpose I/O)通用输入输出口
Nor启动过程,此时基地址为0的地址落在Nor上,片内RAM地址为0x4000,0000
- CPU读出Nor第一个指令(前四字节)执行
- CPU继续读出其他指令
Nand启动过程,此时基地址为0的地址落在片内SRAM中,SRAM开头为Nand Flash内容的拷贝,Nor Flash不可访问
- 2440硬件将Nand前4KB内容复制到片内内存SRAM然后CPU从0地址处取指执行
S3C2440属于soc,片上集成处理器,不仅包括CPU还包括一波寄存器和IO控制器
并没有避免修改其他寄存器设置。。简单粗暴,其实要用与或进行。
LDR R0,[R1] ;读取R1地址值存到R0中,四字节
STR R0,[R1] ;将R0寄存器的值写到R1所指向的地址处,四字节
B ;跳转
MOV R0,R1 ;R0 = R1
MOV R0,#0x100 ;R0 = 0x100
LDR R0,=0x12345678 ;伪指令,拆分成几条指令arm指令
LDR R0,任意值 会被拆分成多条arm指令
MOV R0,0X12345678
ARM精简指令集,长度固定32位的话,0x12345678已经32位了,剩下的位肯定不能保存操作码
简单值成为立即数,无非就是位数有限
- 配置GPF4引脚位输出引脚
- 配置GPF4输出高电平
程序结束必须添加死循环,为了避免执行到后续指令