加入收藏 设为首页 帮助中心
 
论坛首页
用户登录 | 用户注册 | 最新悬赏 | 最新贴子 | 会员中心 | 贴子搜索 | 网站地图 | 帮助中心 | 联系我们
站内搜索:
现在位置 > 维库电子开发网论坛 > 嵌入式系统/ARM技术 > LPC2148自动波特率的使用
帖子主题: LPC2148自动波特率的使用
你还没有登录,无法发表回复,请首先 登录.. [注 册]
积分:40 BF336
发表于:2008-7-24 10:10:00 楼主
级别:一星
积分:40分
注册:2008年07月23日

今天,发现LPC2148还有自动设置波特率的功能,但开始的时候没有能成功应用。主要原因忘记了设置数据长度,停止位数,奇偶校验位。实际应用代码如何下。

 PINSEL0 = (PINSEL0 & 0xfffffff0) | 0x00000005;//设置p0.1,p0.2为UART的对应管脚
  U0ACR = 0x03;//开启自动波特率的功能
  while((U0ACR&0x01)!=0);//等待设置波特率结束
  U0LCR = 0x83;//设定数据长度位8,停止位位1位,无奇偶校验

以下可以,通过串口向上位机发送数据。

在使用中发现,LPC2148 用户手册中发现以下问题。文档中描述波特率计算公式:

UART baud= Pclk / (16 * (16* UDLM + UDLL) )

但个人觉的应该是下面的:

UART baud= Pclk / (16 * (256* UDLM + UDLL))

在实际的应用中使用如下代码时间,设定波特率。

PINSEL0 = (PINSEL0&0xFFFFFFF0)|0x00000005;
 U0LCR = 0x80;                      
 bak = (Fpclk>>4)/baud;
 U0DLM = bak>>8;
 U0DLL = bak&0xff;

也就印证上面的公式。

 
快速回复:
用户名: 密码:  验证码,看不清楚?请点击刷新验证码 注册新帐号?
上传图片格式(jpg/gif/png)和文件格式(rar/pdf)
 
 
网站简介s广告服务网站地图帮助信息联系方式问题报告
Copyright 2007 - 2008 bbs.weeqoo.com
Powered By weeqoo Version 8.0.0XML