<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
		<id>http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=%E7%AC%AC%E4%BA%8C%E5%8D%81%E4%B8%80%E8%AF%BE--Microduino_%E4%B8%B2%E5%8F%A3%E8%B0%83%E8%AF%95</id>
		<title>第二十一课--Microduino 串口调试 - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=%E7%AC%AC%E4%BA%8C%E5%8D%81%E4%B8%80%E8%AF%BE--Microduino_%E4%B8%B2%E5%8F%A3%E8%B0%83%E8%AF%95"/>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=%E7%AC%AC%E4%BA%8C%E5%8D%81%E4%B8%80%E8%AF%BE--Microduino_%E4%B8%B2%E5%8F%A3%E8%B0%83%E8%AF%95&amp;action=history"/>
		<updated>2026-04-29T18:22:29Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https//wiki.microduino.cn/index.php?title=%E7%AC%AC%E4%BA%8C%E5%8D%81%E4%B8%80%E8%AF%BE--Microduino_%E4%B8%B2%E5%8F%A3%E8%B0%83%E8%AF%95&amp;diff=1148&amp;oldid=prev</id>
		<title>Pkj：Created page with &quot;{| style=&quot;width: 800px;&quot; |- | ==目的== 以往程序串口都用来监视，实际上是将数据写出，今天讲讲如何读取串口接收的数据，并进行控制。 =...&quot;</title>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=%E7%AC%AC%E4%BA%8C%E5%8D%81%E4%B8%80%E8%AF%BE--Microduino_%E4%B8%B2%E5%8F%A3%E8%B0%83%E8%AF%95&amp;diff=1148&amp;oldid=prev"/>
				<updated>2014-03-02T14:13:28Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{| style=&amp;quot;width: 800px;&amp;quot; |- | ==目的== 以往程序串口都用来监视，实际上是将数据写出，今天讲讲如何读取串口接收的数据，并进行控制。 =...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| style=&amp;quot;width: 800px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
==目的==&lt;br /&gt;
以往程序串口都用来监视，实际上是将数据写出，今天讲讲如何读取串口接收的数据，并进行控制。&lt;br /&gt;
==设备==&lt;br /&gt;
'''[[Microduino-Core]]'''&lt;br /&gt;
'''[[Microduino-FT232R]]'''&lt;br /&gt;
*其他硬件设备&lt;br /&gt;
**面包板跳线  	 一盒  &lt;br /&gt;
**面包板  	 一块  &lt;br /&gt;
**LED发光二极管  一个&lt;br /&gt;
**220欧姆电阻  	 一个  &lt;br /&gt;
**USB数据连接线  一根 &lt;br /&gt;
==实验一==&lt;br /&gt;
===串口接收字符串===&lt;br /&gt;
只要Microduino core和Microduino Ft232RL，不需要任何外置元件。&lt;br /&gt;
*程序&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
String comdata = &amp;quot;&amp;quot;;//定义一个字符串类型变量&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
 Serial.begin(115200);//配置波特率&lt;br /&gt;
}&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
    while (Serial.available() &amp;gt; 0)  //有串口缓冲数据就一直循环&lt;br /&gt;
    {        &lt;br /&gt;
comdata += char(Serial.read());   //读取数据，每次只读取一个字节&lt;br /&gt;
     delay(2);//串口缓冲&lt;br /&gt;
    }&lt;br /&gt;
    if (comdata.length() &amp;gt; 0)&lt;br /&gt;
    {&lt;br /&gt;
Serial.println(comdata);  //打印串口数据   &lt;br /&gt;
   comdata = &amp;quot;&amp;quot;;//清空数据&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===结果===&lt;br /&gt;
在串口监视界面填写发送数据框写入任意数据，点击发送（或按回车），在接收数据显示框就显示发送的数据文字。 &lt;br /&gt;
[[File:第二十课-串口发送.jpg|600px|center|thumb]]&lt;br /&gt;
[[File:第二十课-串口接收.jpg|600px|center|thumb]]&lt;br /&gt;
'''注意：'''&lt;br /&gt;
*String类型变量，很简单的实现了字符转换成字符串，并且可直接将字符串输出或赋值。&lt;br /&gt;
*while (Serial.available() &amp;gt; 0)语句while不能改成if，否则只能读取一个字符。&lt;br /&gt;
*delay(2)语句不删除，否则串口缓冲区不够时间接受数据。&lt;br /&gt;
*comdata = &amp;quot;&amp;quot;语句不能删除，否则串口数据将一直叠加。&lt;br /&gt;
*comdata定义是字符串，也是一个数组，可以用comdata[0]，comdata[1]、、、comdata[n]将每个数据引用。&lt;br /&gt;
&lt;br /&gt;
==实验二==&lt;br /&gt;
===串口控制led灯===&lt;br /&gt;
*程序&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
String comdata = &amp;quot;&amp;quot;;//定义一个字符串类型变量&lt;br /&gt;
int led=LOW;&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  Serial.begin(115200);//配置波特率&lt;br /&gt;
  pinMode(13, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  while (Serial.available() &amp;gt; 0)  //有串口缓冲数据就一直循环&lt;br /&gt;
  {        &lt;br /&gt;
    comdata += char(Serial.read());   //读取数据，每次只读取一个字节&lt;br /&gt;
    delay(2);//串口缓冲&lt;br /&gt;
  }&lt;br /&gt;
  if (comdata==&amp;quot;on&amp;quot;)&lt;br /&gt;
    led = HIGH;&lt;br /&gt;
  else if(comdata==&amp;quot;off&amp;quot;)&lt;br /&gt;
    led = LOW;&lt;br /&gt;
  digitalWrite(13,led);&lt;br /&gt;
  if (comdata.length() &amp;gt; 0)&lt;br /&gt;
  {&lt;br /&gt;
    Serial.print(comdata);  //打印串口数据  &lt;br /&gt;
    Serial.print(&amp;quot;   led:&amp;quot;);  //打印串口数据 &lt;br /&gt;
    Serial.println(led);  //打印led状态&lt;br /&gt;
&lt;br /&gt;
    comdata = &amp;quot;&amp;quot;;//清空数据&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===结果===&lt;br /&gt;
*实物监视：&lt;br /&gt;
D13引脚接一个led灯。在串口监视界面填写发送数据框写入“on”，点击发送（或按回车），led点亮；写入“off”，点击发送（或按回车），led熄灭；其他情况下led都维持前一个状态。&lt;br /&gt;
*串口界面监视&lt;br /&gt;
在串口监视界面填写发送数据框写入“on”，点击发送（或按回车），返回“on   led:1”；写入“off”，点击发送（或按回车），返回“off   led:0”；其他情况下返回发送的字符串并且led值都维持前一个状态。&lt;br /&gt;
[[File:第二十课-串口命令.jpg|600px|center|thumb]]&lt;br /&gt;
串口接收字符串详细参考：http://www.geek-workshop.com/thread-158-1-1.html&lt;br /&gt;
&lt;br /&gt;
串口接收字符串转化成数组详细参考：http://www.geek-workshop.com/thread-260-1-1.html&lt;br /&gt;
==视频==&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pkj</name></author>	</entry>

	</feed>