查看: 1898|回复: 0

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

[复制链接]

该用户从未签到

发表于 2009-5-14 15:27:37 | 显示全部楼层 |阅读模式
分享到:
和你一起学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.eeworld.com.cn/thread-76303-1-1.html
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2025-1-5 10:07 , Processed in 0.106096 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.