新闻  |   论坛  |   博客  |   在线研讨会
ARM编程注意事项
xfjane | 2010-01-08 22:02:41    阅读:3644   发布文章

LPC21XX系列 ARM编程要点:

1.       未使用的引脚初始化时设置为输出。

2.       从掉电模式唤醒后,PLL的恢复必须由软件完成。通常先将PLL激活并等待锁定,然后再将PLL连接。

3.       复位后,存储器加速模块MAM默认为禁止状态。在改变MAM定时值时,必须先关闭MAM。

4.       在编程和操作过程中不允许访问Flash存储器。

5.       3.3V和1.8V电源设计最大电流分别为600mA和300mA,可使用SPX1117。

6.       ARM端口做输入输出时与单片机有区别,实例如下:

a)          要将P0.8、P0.9设置为TxD1、RxD1,则PINSEL0=(PINSEL0 & 0xFFF0FFFF)|(0x05<<16)

b)        设置P0.0为高电平,则程序为

PINSEL0=PINSEL0 & 0xFFFFFFFC   设置P0.0为GPIO

                      IO0DIR= IO0DIR | 0x00000001   设置P0.0方向为输出

                      IO0SET= 0x00000001    设置P0.0口状态,输出高电平

c)         读取P0.0引脚状态,则程序为

PINSEL0=PINSEL0 & 0xFFFFFFFC   设置P0.0为GPIO

                      IO0DIR= IO0DIR & 0xFFFFFFFE   设置P0.0方向为输入

                      PinStat=IO0PIN             从IO0PIN读取P0.0口状态

d)        将八位无符号整形变量Data输出到P0.0~P0.7,则程序为

PINSEL0=PINSEL0 & 0xFFFF0000   设置P0.0为GPIO

                      IO0DIR= IO0DIR | 0xFF   设置P0.0~P0.7方向为输出

                      IO0CLR= 0xFF          清零P0.0~P0.7的输出状态

                      IO0SET=Data           Data中为1的位输出高电平

e)         将八位无符号整形变量Data输出到P0.0~P0.7,则程序为

PINSEL0=PINSEL0 & 0xFFFF0000   设置P0.0为GPIO

                       IO0DIR= IO0DIR | 0xFF   设置P0.0~P0.7方向为输出

                       IO0PIN= (IO0SET & 0xFFFFFF00)| Data     写IO0PIN,输出数据

7.       关于中断

在处理IRQ中断过程中,IRQ中断默认是被禁止的;

在启动代码中默认是关闭IRQ和FIQ的,如果要使用需要设置CPSR寄存器的I位或F位,这需要在特权模式下处理,最简单的方法是在启动代码中设置;

8.      关于SPI

SPI控制寄存器用来控制SPI时钟,通过SPI状态寄存器的SPIF位可查询数据传输是否完成,SPI数据寄存器用于提供发送和接收的数据字节。

SPI可设置成主机模式或者从机模式。处于主机模式时,SPI时钟寄存器用来控制时钟频率,该寄存器必须在数据传输之前设定。处于从机模式时,该寄存器无效。当设计为从机模式时,其对应的SSEL被选中时才有效。当设计为主机模式时,对应的SSEL端口需接上拉电阻(置高)。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客