购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第三章

实例一
——通用异步收发传输器UART

3.1 UART概述

CC3200 集成了两个全功能的通用异步收发传输器(Universal Asynchronous Receivers / Transmitters, UART),具有如下特征:

采用系统时钟,通信速率可编程,最高可达 3Mbps;

独立的 16*8bits发送TX和接收RX缓冲器先入先出队列FIFO(First Input First Output),减少了CPU负载;

可编程的FIFO长度;

FIFO触发可选择,标准的FIFO中断和传输结束中断;

全特征可编程的串行接口;

支持RTS和CTS硬件流控;

采用µDMA实现高效传输。

CC3200 UART执行并串和串并转换。传输逻辑从传输FIFO读取数据并执行并串转换。控制逻辑输出参照控制寄存器中的配置生成的以起始位开始,之后依次为数据位(低位在前)、奇偶位和停止位的串行位流。接收逻辑在检测到有效启动脉冲后接收位流数据并执行串并转换。同时,进行溢出检测、奇偶校验、帧错误检查和传输中断检测,接收数据及其状态信息被写入接收FIFO。UART接收的数据或传输的数据分别存储在两个 16 字节的FIFO,其中,对于每个字节,接收FIFO有额外的四个位用于表示信息状态。

UART可配置为采用UART控制寄存器(UARTCTL)的TXE和RXE位有效传输和接收。设备或模块重置之后,传输和接收均有效。在设置任何控制寄存器之前,必须先清除UARTCTL寄存器的UARTEN位来实现UART禁用。在TX和RX操作期间如果UART被禁用,当前传输完成之后才会停止UART。

UART产生中断的条件有溢出、传输中断、校验错误、帧错误、接收超时、传输错误、接收错误。以上所有中断事件采用线或的方式连接,因此在任何时候,UART只会产生一个中断请求给控制器。通过读取UART掩码中断状态寄存器(UARTMIS),软件在单个中断服务例程中将处理多个中断事件。

有效或初始化UART,需要遵循以下步骤:采用寄存器UART0CLKEN/UART1CLKEN有效UART模块;给GPIO_PAD_CONFIG CONFMODE位设置合适的引脚。

表 3.1 UART基地址

UART基地址如表 3.1。表 3.2 为UART的内存映射寄存器。表中所有未列出的偏移地址为保留位置,且相应位置寄存器内容无法修改。表中寄存器偏移地址为相对于UART基地址的十六进制增量。必需有效UART模块时钟,才可操作UART模块寄存器。在UART模块时钟有效之后,UART模块寄存器可访问之前,存在 3 个系统时钟的延迟。

表 3.2 UART寄存器内存映射

关于UART寄存器及详细编程信息,请参见CC3200 Technical Reference Manual技术参考手册 【1】

3.2 UART程序

3.2.1 UART配置

UART配置程序以UART0 为例,首先有效串口UART0 的时钟,其次分别设置PIN_55 和PIN_57 为串口 0 的数据发送接口和数据接收接口。

3.2.2 UART初始化

串口初始化程序中需指定串口UART的基地址,并设置数据传输波特率、数据长度、停止位、奇偶校验位等。相关通信参数设置需要与主机超级终端设置一致,才能确保串口数据的准确发送和接收。

3.2.3 UART接收字符

函数UARTCharGet()用于从指定串口接收一个字符,如果接收FIFO无有效字符,函数将等待直到接收到一个字符后才返回。其中ulBase为串口的基地址,函数的返回值即为所接收的字符。

3.2.4 UART发送字符

函数UARTCharPut()用于往指定串口发送一个字符,如果发送FIFO中无有效空间,函数将等待直到发送空间有效才返回。其中ulBase为串口的基地址,ucData为被发送的字符。

3.2.5 信息打印函数

软件开发套件中提供了三个信息打印函数:Message()、Report()和UART_PRINT()。

函数Message()将输入字符串以字符的方式打印至控制台,一般情况下,控制台设置为指定串口的基地址。

函数Report()封装了函数Message(),将格式化的字符串打印至控制台。

函数UART_PRINT()与函数Report()相同。

3.3 UART示例

在CCS中导入工程项目“uart_demo”,设置参数,例如编译器版本、处理器选项、符号定义等,编译程序。在程序编译无误后,可将目标文件下载至目标板进行程序调试,或将目标文件编程至目标板以运行程序。

3.3.1 设备连接

CC3200-LAUNCHXL采用mini-USB接口转USB接口线缆连接至主机。设备连接如图 3.1。

图 3.1 CC3200-LAUNCHXL与PC连接

3.3.2 测试结果

本实例中UART示例程序运行在目标板,采用USB接口从主机接收信息,将信息发送回主机。主机中输入和输出信息,以及显示信息均采用超级终端实现,例如Super Terminal、Hyper Terminal、Tera Term、SecureCRT等。本文中所有案例测试打印信息均采用Tera Term显示,如图 3.2。

图 3.2 uart_demo打印信息 CmVOH96En2fjDMjH8KtfMcYLpk85TivUwvFbUCaf/zWXEms2CRXtQNYsb+e6eLxz

点击中间区域
呼出菜单
上一章
目录
下一章
×