文档详情

UART程序设计介绍与电路仿真.ppt

发布:2018-04-10约3.17千字共28页下载文档
文本预览下载声明
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;
显示全部
相似文档