打印

和你一起学ARM系列活动之七

[复制链接]
1171|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiaoyl163|  楼主 | 2009-5-14 16:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
和你一起学ARM系列活动之七
----串行口实验
这回我们来研究一下一个重要的片内外设串行口。我相信大家都知道口串行口吧,我就不过多介绍它了。闲话少说,我们开始。
 LPC2103有两个串行口。UART0和UART1,下面我们以UART0为例,介绍串行口。
管脚连接设置
需要设置IO口连接模块PINSEL0,设成连接到UART0. 请参考活动六的介绍。
PINSEL=0x05;
串行口波特率的设置
LPC2103具有内置的波特率发生器。
我们需要设置波特率分频寄存器(共16位)。U0DLM是高8位,U0DLL是低8位。
分频值 =  Fpclk/16/波特率
Fpclk:我们在活动3中介绍过。我们的晶振是11.0592经过PLL的6倍频和VPB的4分频,供给片内外设的时钟是11.0592M*6/4=16.5888MHz
我们计算9600波特率的分频值 = 16588800/16/9600 =108 =0x006c
计算结果
U0DLM=0x00; 
U0DLL=0x6c;

注:设置分频寄存器时还要将U0LCR的第7位置1
其他重要寄存器介绍

U0IER 中断使能寄存器 = 0x07;
U0IER    功能    描述    复位值
第0位    RBR中断使能    接收到数据或接收超时。0:禁止  1:使能    0
第1位    THRE中断使能    发送缓冲为空    0
第2位    Rx线状态中断使能        0

U0THR 发送寄存器。把需要向外发的数据直接赋值给它。 
U0RBR 接收寄存器。从这个寄存器中读取接收到的数据。
U0IIR 中断标识寄存器
U0IIR[3:0]    优先级    中断类型    中断源    中断复位
   0110    最高    Rx线状态/错误    OE,PE,FE,或BI    U0LSR读操作
   0100    第二    Rx数据可用    Rx数据可用或FIFO模式下(U0FCR0=1)到达触发点    U0RBR读或UART0 FIFO低于触发值
   1100    第二    字符超时指示    Rx FIFO包含至少1个字符并且在一段时间内无字符输入或移出    U0RBR读操作
   0010    第三    THRE    THRE  发送缓冲为空中断    U0IIR读或写操作
在定时器中断函数中,需要读取此寄存器,用来区分中断的来源。

来自:http://bbs.**/thread-76303-1-1.html

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

0

粉丝