UART应用开发实例

  • 格式:pdf
  • 大小:98.52 KB
  • 文档页数:3
P0.15/RI1/EINT2
19 21 22 26 27 29 30 31 33 34 35 37 38 39 41 45
P0.16/EINT0/MAT0.2/CAP0.2 P0.17/CAP1.2/SCK1/MAT1.2
P0.18/CAP1.3/MISO1 P0.19/MAT1.2/MOSI1 P0.20/MAT1.3/SSEL1/EINT3 P0.21/PW M5/CAP1.3 P0.22/CAP0.0/MAT0.0
P1.24/TRACECLK P1.25/EXTIN0 P1.26/RTCK P1.27/TDO P1.28/TDI P1.29/TCK P1.30/TMS P1.31/TRST
16 12 8 4 48 44 40 36 32 28 24 64 60 56 52 20
LPC2124
RXD TXD RTS CTS
3.3V 1.8V
U1
62 61
XTAL1 PWM1 P0.1/RxD0/PWM3 P0.2/SCL/CAP0.0 P0.3/SDA/MAT0..0/EINT1 P0.4/SCK0/CAP0.1 P0.5/MISO0/MAT0.1 P0.6/MOSI0/CAP0.2 P0.7/SSEL0/PW M2/EINT2 P0.8/TxD1/PWM4 P0.9/RxD1/PW M6/EINT3 P0.10/RTS1/CAP1.0 P0.11/CTS1/CAP1.1 P0.12/DSR1/MAT1.0 P0.13/DTR1/MAT1.1 P0.14/DCD1/EINT1
P0.23 P0.24 P0.25
46 47 53 54 55 1 2 3 5 9
3.3V
P0.27/AIN0/CAP0.1/MAT0.1 P0.28/AIN1/CAP0.2/MAT0.2 P0.29/AIN2/CAP0.3/MAT0.3
P0.30/AIN3/EINT3/CAP0.0
11 13 14 15
6.6.4 应用实例
图 6.19 电路原理图
【实例6-9】使用UART0 向PC 机发送字符串“Hello World!”。UART0 设置为通讯波特率115200,8 位数据位,1位停止位,无奇偶校验。
1.电路连接 如图 6.19 所示,LPC2124 的 P0.0 和 P0.1 管脚连接到虚拟终端的 RXD 和 TXD 端口。
(2)软件延时程序:延时参数─dly ,值越大,延时越久。
void DelayNS(uint32 dly)
{
uint32 i;
for(; dly>0; dly--)
for(i=0; i<5000; i++);
}
(3)初始化 UART0:设置为 8 位数据位,1 位停止位,无奇偶校验,波特率为 115200。
7 51 43 23
V3A V3 V3 V3
63 17 49
V18A V18 V18
58 59 50 42 25 18
6
VSSA_PLL VSSA VSS VSS VSS VSS VSS
P1.16/TRACEPKT0 P1.17/TRACEPKT1 P1.18/TRACEPKT2 P1.19/TRACEPKT3 P1.20/TRACESYNC P1.21/PIPESTAT0 P1.22/PIPESTAT1 P1.23/PIPESTAT2
void UART0_Ini(void) {
uint16 Fdiv;
U0LCR = 0x83;
// DLAB = 1,可设置波特率
Fdiv = (Fpclk / 16) / UART_BPS;
// 设置波特率
U0DLM = Fdiv / 256;
U0DLL = Fdiv % 256;
U0LCR = 0x03;
1
2.程序的编写 利用 ARM 开发工具 RealView MDK 建立“UART1.Uv2”工程,并添加代码,编译并链接工程, 生成 UART1.hex 文件。核心代码如下: (1)相关的定义
#include "config.h"
#define UART_BPS 115200
/* 定义通讯波特率 */
6.6 UART 串口通信功能及应用
波特率的除数计算如下:
UxDLM、UxDLL = Fpclk 16 × baud
(6-2)
其中,baud 为所需要的波特率。 UART0 的基本操作方法: ① 设置 I/O 连接到 UART0; ② 设置串口波特率(U0DLM、U0DLL); ③ 设置串口工作模式(U0LCR、U0FCR); ④ 发送或接收数据(U0THR、U0RBR); ⑤ 检查串口状态字或等待串口中断(U0LSR)。
图 6.20 仿真结果
3
int main(void)
{
PINSEL0 = 0x00000005;
// 设置 I/O 连接到 UART0
UART0_Ini(); while(1) {
UART0_SendStr(SEND_STRING); DelayNS(10); } }
2
3.电路仿真 (1)在 PROTEUS 软件中,连接电路原理图如图 6.19 所示。 (2)右击 LPC2124,在弹出的 Edit Component 对话框中,为 LPC2124 芯片设置 Program File 文件 UART1.HEX 路径。 (3)启动仿真,虚拟终端输出“Hello World!”字符串,如图 6.20 所示。
}
(4)向串口发送一字符串:srt─要发送的字符串的指针。
void UART0_SendStr(uint8 const *str)
{
while(1)
{
if( *str == '\0' ) break;
UART0_SendByte(*str++);
// 发送数据
}
}
(5)主程序:向串口 UART0 发送字符串“Hello World!”。