“第二十二课--Microduino 串口调试/zh”的版本间的差异
853387039@qq.com(讨论 | 贡献) (→结果) |
|||
(未显示2个用户的5个中间版本) | |||
第6行: | 第6行: | ||
以往程序串口都用来监视,实际上是将数据写出,今天讲讲如何读取串口接收的数据,并进行控制。 | 以往程序串口都用来监视,实际上是将数据写出,今天讲讲如何读取串口接收的数据,并进行控制。 | ||
==设备== | ==设备== | ||
− | '''[[Microduino-Core]]''' | + | *'''[[Microduino-Core/zh]]''' |
− | '''[[Microduino- | + | *'''[[Microduino-USBTTL/zh]]''' |
*其他硬件设备 | *其他硬件设备 | ||
**面包板跳线 一盒 | **面包板跳线 一盒 | ||
第13行: | 第13行: | ||
**LED发光二极管 一个 | **LED发光二极管 一个 | ||
**220欧姆电阻 一个 | **220欧姆电阻 一个 | ||
− | **USB数据连接线 一根 | + | **USB数据连接线 一根 |
+ | |||
==实验一== | ==实验一== | ||
===串口接收字符串=== | ===串口接收字符串=== | ||
第55行: | 第56行: | ||
String comdata = "";//定义一个字符串类型变量 | String comdata = "";//定义一个字符串类型变量 | ||
int led=LOW; | int led=LOW; | ||
+ | int led_pin=6; | ||
void setup() | void setup() | ||
{ | { | ||
Serial.begin(115200);//配置波特率 | Serial.begin(115200);//配置波特率 | ||
− | pinMode( | + | pinMode(led_pin, OUTPUT); |
} | } | ||
void loop() | void loop() | ||
第71行: | 第73行: | ||
else if(comdata=="off") | else if(comdata=="off") | ||
led = LOW; | led = LOW; | ||
− | digitalWrite( | + | digitalWrite(led_pin,led); |
if (comdata.length() > 0) | if (comdata.length() > 0) | ||
{ | { | ||
第81行: | 第83行: | ||
} | } | ||
} | } | ||
+ | |||
</source> | </source> | ||
+ | |||
===结果=== | ===结果=== | ||
*实物监视: | *实物监视: | ||
− | + | D6引脚接一个led灯。打开串口监视器,波特率选择115200,在串口监视界面填写发送数据框写入“on”,点击发送(或按回车),led点亮;写入“off”,点击发送(或按回车),led熄灭;其他情况下led都维持前一个状态。 | |
*串口界面监视 | *串口界面监视 | ||
在串口监视界面填写发送数据框写入“on”,点击发送(或按回车),返回“on led:1”;写入“off”,点击发送(或按回车),返回“off led:0”;其他情况下返回发送的字符串并且led值都维持前一个状态。 | 在串口监视界面填写发送数据框写入“on”,点击发送(或按回车),返回“on led:1”;写入“off”,点击发送(或按回车),返回“off led:0”;其他情况下返回发送的字符串并且led值都维持前一个状态。 | ||
第91行: | 第95行: | ||
串口接收字符串转化成数组详细参考:http://www.geek-workshop.com/thread-260-1-1.html | 串口接收字符串转化成数组详细参考:http://www.geek-workshop.com/thread-260-1-1.html | ||
+ | |||
==视频== | ==视频== | ||
|} | |} |
2014年11月17日 (一) 10:01的最新版本
Language | English |
---|
目的以往程序串口都用来监视,实际上是将数据写出,今天讲讲如何读取串口接收的数据,并进行控制。 设备
实验一串口接收字符串只要Microduino core和Microduino Ft232RL,不需要任何外置元件。
String comdata = "";//定义一个字符串类型变量
void setup()
{
Serial.begin(115200);//配置波特率
}
void loop()
{
while (Serial.available() > 0) //有串口缓冲数据就一直循环
{
comdata += char(Serial.read()); //读取数据,每次只读取一个字节
delay(2);//串口缓冲
}
if (comdata.length() > 0)
{
Serial.println(comdata); //打印串口数据
comdata = "";//清空数据
}
}
结果在串口监视界面填写发送数据框写入任意数据,点击发送(或按回车),在接收数据显示框就显示发送的数据文字。 注意:
实验二串口控制led灯
String comdata = "";//定义一个字符串类型变量
int led=LOW;
int led_pin=6;
void setup()
{
Serial.begin(115200);//配置波特率
pinMode(led_pin, OUTPUT);
}
void loop()
{
while (Serial.available() > 0) //有串口缓冲数据就一直循环
{
comdata += char(Serial.read()); //读取数据,每次只读取一个字节
delay(2);//串口缓冲
}
if (comdata=="on")
led = HIGH;
else if(comdata=="off")
led = LOW;
digitalWrite(led_pin,led);
if (comdata.length() > 0)
{
Serial.print(comdata); //打印串口数据
Serial.print(" led:"); //打印串口数据
Serial.println(led); //打印led状态
comdata = "";//清空数据
}
}
结果
D6引脚接一个led灯。打开串口监视器,波特率选择115200,在串口监视界面填写发送数据框写入“on”,点击发送(或按回车),led点亮;写入“off”,点击发送(或按回车),led熄灭;其他情况下led都维持前一个状态。
在串口监视界面填写发送数据框写入“on”,点击发送(或按回车),返回“on led:1”;写入“off”,点击发送(或按回车),返回“off led:0”;其他情况下返回发送的字符串并且led值都维持前一个状态。 串口接收字符串详细参考:http://www.geek-workshop.com/thread-158-1-1.html 串口接收字符串转化成数组详细参考:http://www.geek-workshop.com/thread-260-1-1.html 视频 |