您的位置:首页 > 其它

使用单片机的UART(COM口)进行传输 (单片机 LM3S811)

2011-09-11 01:54 337 查看
转载请注明来自:/article/1897198.html

百度百科:UART:Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。

LM3S系列的单片机一般都是有UART的输入输出功能,对于单片机LM3S811来说,他有两个UART口,即UART0和UART1,这个接口的类型就是我们电脑上所使用的COM口。要注意的一点是,单片机并没有给UART单独的针脚,所以UART0使用的是管脚GPIOA 0\1 UART1使用的是管脚GPIOD 2\3,而且,由于笔者使用的是笔记本,没有COM口,所以还需要一个COM2USB的转接线。


下面让我们来看一下程序:

首先是头文件:这次增加了#include "driverlib/uart.h"即UART的驱动库。

在管脚设置里,要使能GPIO端口,在外围设备上,要使能:SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);

下一步是配置UART的帧格式:每帧几个数据,有没有结束位,有没有校验位等设置,写法如下:

UARTConfigSetExpClk(UART0_BASE,SysCtlClockGet(),115200,UART_CONFIG_WLEN_8|UART_CONFIG_PAR_NONE|UART_CONFIG_STOP_ONE); //配置UART0,设置帧格式为8位数据为,1位停止位,无奇偶校验,波特率115200

相信大家自己可以读出来,一般使用这种配置就好。

几个重要的地方说到了,我们直接看代码好了:

#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "driverlib/uart.h" //注意这里是新加的头文件

void UARTSendString(unsigned long ulBase,char* pcBuf);  //发送字符串(这是自己写的一个函数)

int main()
{
	char c;
	SysCtlClockSet(SYSCTL_OSC_MAIN|SYSCTL_USE_OSC|SYSCTL_XTAL_6MHZ|SYSCTL_SYSDIV_1);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
	GPIOPinTypeUART(GPIO_PORTA_BASE,GPIO_PIN_0|GPIO_PIN_1);   //将引脚类型设置为UART
	
	SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);         //为UART0提供系统时钟
	UARTConfigSetExpClk(UART0_BASE,SysCtlClockGet(),115200,UART_CONFIG_WLEN_8|UART_CONFIG_PAR_NONE|UART_CONFIG_STOP_ONE);
       //配置UART0,设置帧格式为8位数据为,1位停止位,无奇偶校验,波特率115200
	UARTEnable(UART0_BASE);          //使能UART0
	UARTSendString(UART0_BASE,"Hello World");  //发送字符串“Hello World”
	UARTCharPut(UART0_BASE,10);   //换行,此函数是原始函数,只可以发送ascii码
	UARTCharPut(UART0_BASE,13);
	while(1) //while代码的功能是,将计算机输入的字符输出出去
	{
		c = UARTCharGet(UART0_BASE);   //接收一个字符
		UARTCharPut(UART0_BASE,c);     //将接收到的字符发送出去
	}
}

void UARTSendString(unsigned long ulBase,char* pcBuf)
{
	while(*pcBuf)
	{
		UARTCharPut(ulBase,*pcBuf++);
	}
}


上图即是在使用UART中一些函数的用法,如果要使用UART1 ,要把上面使能的GPIOA 0\1改成GPIOD 2\3 所有的UART0改为UART1即可

程序写好了,电脑用什么来接受呢? 在这里推荐超级终端和串口调试助手两个软件。

简单介绍一下超级终端:

超级终端程序很小,但是在串口的传输上功能很强大。用串口将电脑和单片机连起来后,打开超级终端,先随便起个名,下一步,选择COM口,一般只有一个可用的,然后下一步是设置,选择好速率,停止位,校验位,并且把硬件设置为“无”,即可使用了。

超级终端下载 http://download.csdn.net/detail/icyfox_bupt/3591890

有什么问题可以评论交流,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: