UART程序设计介绍与电路仿真.ppt
文本预览下载声明
UART程序设计与电路仿真
预备知识:
LPC2138有两个UART,16字节收发的FIFO。两个串口具有基本相同的寄存器,在使用UART与上位机PC通信时,需要MAX3232芯片进行RS232串口电平转换。
功能描述MAX232 是 一 种 双 组 驱 动 器 / 接 收 器 , 片 内 含 有 一 个 电 容 性 电 压 发 生 器 以 便 在 单 5V 电 源 供 电 时 提 供 EIA/TIA-232-E电平。每个接收器将EIA/TIA-232-E电平输入转换为5V TTL/CMOS电平。这些接收器具有1.3V 的典型门限值及0.5V的典型迟滞 ,而且可以接收±30V的输入。 每个驱动器将TTL/CMOS输入电平转换 为 EIA/TIA-232-E电平。
一,实验目的:通过实验,掌握UART各个控
制寄存器的设置,并能使用串口向PC机发送数据。
二,实验器材:
LP2138一片,虚拟终端两个,0.1u电容4个,
MAX232一片,3.3V电源。
三,实验要求:使用UART0向PC机发送字符串
“An ARM7 Example LPC2138 By IMU 2011-04-20 23:55:07\r\n”
附录:
1,RS232引脚定义引脚 定义 符号 1 载波检测 DCD*2 接收数据 RXD*3 发送数据 TXD 4 数据终端准备好 DTR*5 信号地 SG(接地) 6 数据准备好 DSR 7 请求发送 RTS 8 清除发送 CTS 9 振铃提示 RI
注:带*的是本实验要用到的引脚
2,波特率配置基本原则:
16Baud=Fpclk/(UnDLM:UnDLL)
UART 0
特性:
(1)16字节接收FIFO和16字节发送FIFO
(2)寄存器位置符合16C550工业标准
(3)接收器FIFO出发点可为1,4,8和14字节
(4)内置波特率发生器
引脚描述
结构
寄存器描述
UAPTO包含10个8位寄存器
DLAB(除数锁存访问位)
主文件代码:
#include Config.h
#include Target.h
#include LPCUart.h
/****************************************************************************
* 名称:Delay()
* 功能:长软件延时
* 入口参数:Time_Data 延时参数,值越大,延时越久
* 出口参数:无
****************************************************************************/
void Delayms(uint32 TimeData)
{
uint32 i;
for(; TimeData0; TimeData--)
for(i=0; i9000; i++);
}
#define UART_BPS 9600 /* 定义通讯波特率 */
/****************************************************************************
* 名称:UART0_Ini()
* 功能:初始化串口0。
* P0.0和P0.1连接到UART, 设置为8位数据位,1位停止位,无奇偶校验,波特率为9600
* 入口参数:无
* 出口参数:无
****************************************************************************/
void UART0_Ini(void)
{
uint16 Fdiv;
PINSEL0 = 0xFFFFFFF0;
PINSEL0 |= 0 // 设置I/O连接到UART0
U0LCR = 1 LCR_DLAB_BIT | // DLAB = 1,可设置波特率
WordLength8 LCR_WORDLENTH_BIT; // WordLenth = 3, 8位数据位
Fdiv = (Fpclk 4) / UART_BPS; // 设置波特率
U0DLM = (Fdiv 0xFF00) 8; // 设置分频寄存器高字节
U0DLL = Fdiv 0x00FF; // 设置分频寄存器低字节
U0LCR = 0x03;
显示全部