6688|8

305

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

NXP LPC1768宝马开发板 第四章UART [复制链接]

第四章    宝马1768—— UART

开发环境:集成开发环境μVision4 IDE版本4.60.0.0

主机系统:Microsoft Windows XP

开发平台:旺宝NXP LPC1768开发板



4.1 UART

4.2 硬件描述

4.3 程序说明

4.4 实验现象



1UART
    说到串口,相信大家都不会感到陌生了。UART英文全称为:Universal Asynchronous Receiver/Transmitter,即通用异步收发传输器。几乎任何一款单片机上都有串口,LPC17xx系列多达4UART,非常适合需要多个UART的应用场合。
2、硬件描述:
本节实验用的是UART0UART2
3、程序说明:
初始化串口(UART)
从原理图我们可以看到
RXD0P0.3AD0.6复用
TXD0P0.2AD0.7复用
这两根引脚默认的情况下是作P0.2P0.3,并且是输入状态。
我们首先要把这两根引脚设置成RXDTXD
  LPC_PINCON->PINSEL0 |= (1 << 4);     //P0.2设置成TXD0
  LPC_PINCON->PINSEL0 |= (1 << 6);     //P0.3设置成RXD0
    配置完引脚后,就该操纵UART的寄存器了。首先,我们设置串口通信的传输格式,最常用的是8位数据,1个停止位,无奇偶校验。格式设置在LCR寄存器里面。
    除了格式设置外,LCRBit7还控制着能否对除数锁存器进行访问。(除数锁存器是设置波特率要用到的除数)
根据我们的要求:
//8个数据位,1个停止位,无奇偶校验
LPC_UART0->LCR  = 0x83;   
设置完数据传输格式,再设置波特率
UART0/2/3波特率的计算(n =0/2/3):
ø
小数分频寄存器(FDR)
有上图寄存器的值可知,在默认情况下的波特率为:
   
    在一般情况下,我们不必要用小数分频器,只需确定除数锁存器的值就可以设置波特率了。在应用的时候,我们要求在一定的波特率下通信,所以波特率是已知的,求除数锁存器usFdiv的值。
usFdiv = (FPCLK / 16) / file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps15C.tmp.pngfile:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps15D.tmp.png
LPC_UART0->DLM  = usFdiv / 256;                                 // 写除数锁存器高位
LPC_UART0->DLL  = usFdiv % 256;                          // 写除数锁存器低位
设置好了波特率,为了稳定,我们不希望程序意外修改这个值,所以我们把除数锁存器的允许访问位bit70。根据官方数据手册,访问THR(发送保持寄存器)RBR(接收器缓冲寄存器)LCR中的除数锁存器访问位bit7(DLAB)都必须为0
LPC_UART0->LCR  = 0x03;                 // 禁止访问除数锁存器
    LPC1768PC通信,数据是在RxFIFO TxFIFO进出的,其默认情况下是关闭的,我们把它打开。
  FIFO控制寄存器(FCR)
LPC_UART0->FCR  = 0x07;          // 允许FIFO、清空UART0 RxFIFO TxFIFO
到了这里,我们的初始化就完成了,接下来就可以发送和接收数据。
LPC1768是怎样知道数据有没有发送出去,或者有没有接收到数据呢?通过查阅数据手册知道,它是通过读“发送接收状态寄存器(LSR)”来判断的。
LSRbit0可以知道有没有数据接收到     0为空,1为接收到数据   
               while (!(LPC_UART0->LSR & 0x01));
LSRbit5可以知道有没有发送完数据    0有数据,1为空
           while (!(LPC_UART0->LSR & 0x20));
发送数据到PC:
PC接收数据:
4、实验现象:
打开“串口调试助手”,设置好波特率115200,选择和电脑对应的COM口。

例程附件可以到这个帖子下载:在这里就不在上传了
https://bbs.eeworld.com.cn/thread-453270-1-1.html

此帖出自NXP MCU论坛

最新回复

增加库函数版本例程,https://bbs.eeworld.com.cn/thread-645053-1-1.html  详情 回复 发表于 2018-5-22 10:51

赞赏

1

查看全部赞赏

点赞 关注
个人签名http://openmcu.taobao.com]77[/url]
 

回复
举报

12

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
俺只有路虎的板子
此帖出自NXP MCU论坛

点评

这个是你手中板子的升级版本哦  详情 回复 发表于 2015-1-21 11:54
 
 
 

回复

305

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
dixin01 发表于 2015-1-20 11:25
俺只有路虎的板子



这个是你手中板子的升级版本哦
此帖出自NXP MCU论坛
 
个人签名http://openmcu.taobao.com]77[/url]
 
 

回复

4997

帖子

19

TA的资源

裸片初长成(初级)

4
 
感谢分享啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
此帖出自NXP MCU论坛

点评

谢谢你的加分  详情 回复 发表于 2015-3-5 11:21
 
个人签名我的博客
 
 

回复

305

帖子

0

TA的资源

一粒金砂(高级)

5
 
zhaojun_xf 发表于 2015-1-30 14:46
感谢分享啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。



谢谢你的加分
此帖出自NXP MCU论坛
 
个人签名http://openmcu.taobao.com]77[/url]
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢分享 学习啦
此帖出自NXP MCU论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

7
 
程序下载到板子上,在串口助手里是乱码,这是什么情况?
此帖出自NXP MCU论坛
 
 
 

回复

25

帖子

1

TA的资源

一粒金砂(初级)

8
 
谢谢分享,参考下
此帖出自NXP MCU论坛
 
 
 

回复

102

帖子

0

TA的资源

一粒金砂(中级)

9
 
增加库函数版本例程,https://bbs.eeworld.com.cn/thread-645053-1-1.html
此帖出自NXP MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表