Arduino基础教程:串口输出

时间:12-08-25 栏目:Arduino 作者:JH单片机 评论:0 点击: 9,761 次



先这么理解,Arduino是个独立的个体,可以说是一个没有外围设备的计算机微控制系统。而在一些应用的环境下,我们需要让Arduino跟其他设备进行通信。在微控制领域,常见的是使用串行通信。我们将通过Arduino连接PC机进行通信,说明串行通信的一个例子:串口输出功能。

两个设备之间通信,首先要确立“双方协议”,也就是所谓的通信协议。比如两个人沟通,首要条件是有共同语言。而这种共同语言就像“协议”一样约定好了的。如果双方协议不同,理论上是不能够通信的(跨协议的例外,这里也不讨论),就好像对牛弹琴。

重点来了!串行通信遵循的是RS-232协议。说了那么对废话也就这句是重点。
我们知道PC机串行通信逻辑电平是:-15V(正逻辑),+15V(负逻辑),而Arduino是TTL电平,也就是只有±5V。现在他们双方要通信,则需要对他们的逻辑电平“统一化”。可以想象一下,沟通的两个人的伦理道德要相符,不然分分钟对方拿刀砍你,然后跟你说声对不起就了事,这可不行。

又是一个重点。一般完成RS-232电平和TTL电平之间的转换一般采用专用芯片,如MAX232等。
关于串行通信,之前我写了几篇文章,有兴趣了解的话,可以在我网站上搜搜。这里不再阐述。

Arduino与PC机串行通信,已不再是难点。而在我们调试程序,很多时候会用串口将数据打印到计算机上,观察数据变化,从而进行调试程序。
串行通信的几个关键,波特率、数据位、停止位等,简单了解一下就好。在Arduino语言可以使用Serial.begin()函数来简化这一任务。为了实现数据的发送,Arduino则提供了Serial.print()和Serial.println()两个函数,它们的区别在于后者会在请求发送的数据后面加上换行符,以提高输出结果的可读性。

将Arduino UNO通过USB线,连接到PC机的USB接口上。通过下面的程序,来看看串行通信输出功能。

程序:

/*********************
Arduino test program
范例:串口输出
site:www.jhmcu.com
**********************/
void setup()
{
	Serial.begin(9600);	//配置串口
}

void loop()
{
	Serial.println("Hello World!");//输出 Hello World!
	delay(1000);				   //延时1秒
}

即使简单,也要说一下。这段程序,将每间隔1秒钟把Hello World!这行字符发送到PC上,只要PC机通过串口连接上,也就能接收到Hello World!这行字符。

在Arduino集成开发环境的工具栏中单击“Serial Monitor”控制,打开串口监视器

接着将波特率设置为9600,(波特率需要保持跟Arduino设置的波特率一致)

这样我们就可以在Arduino集成开发环境的Console窗口中看到串口上输出的数据了

而在Arduino UNO的板子上,有TX和RX两个LED灯,你将会看到每隔段时间,TX灯会闪烁,说明通过串口发送出数据。
这篇文章到此结束了。想进一步了解串行通信,可以搜一下我网站的文章,应该对你有所帮助的。
相信你也能预测到我下一篇文章是什么题目了吧?!

 
关于本文作者

爱数电,爱模电;爱单片机,爱嵌入式;爱EDA,也爱DSP; 爱Altium Designer,也爱PCB;爱生活,同时也爱微博…… 一个自动化专业的学生,与志同道合者学习交流!!!

QQ 号码:594420349
腾讯微博:http://t.qq.com/kevin_753

项目合作