查看“第二十二课--Microduino 串口调试/zh”的源代码
←
第二十二课--Microduino 串口调试/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language|Lesson_22--Microduino_"Serial_port_debugging" }} {| style="width: 800px;" |- | ==目的== 以往程序串口都用来监视,实际上是将数据写出,今天讲讲如何读取串口接收的数据,并进行控制。 ==设备== *'''[[Microduino-Core/zh]]''' *'''[[Microduino-USBTTL/zh]]''' *其他硬件设备 **面包板跳线 一盒 **面包板 一块 **LED发光二极管 一个 **220欧姆电阻 一个 **USB数据连接线 一根 ==实验一== ===串口接收字符串=== 只要Microduino core和Microduino Ft232RL,不需要任何外置元件。 *程序 <source lang="cpp"> 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 = "";//清空数据 } } </source> ===结果=== 在串口监视界面填写发送数据框写入任意数据,点击发送(或按回车),在接收数据显示框就显示发送的数据文字。 [[File:lesson22-send.jpg|600px|center|thumb]] [[File:lesson22-receive.jpg|600px|center|thumb]] '''注意:''' *String类型变量,很简单的实现了字符转换成字符串,并且可直接将字符串输出或赋值。 *while (Serial.available() > 0)语句while不能改成if,否则只能读取一个字符。 *delay(2)语句不删除,否则串口缓冲区不够时间接受数据。 *comdata = ""语句不能删除,否则串口数据将一直叠加。 *comdata定义是字符串,也是一个数组,可以用comdata[0],comdata[1]、、、comdata[n]将每个数据引用。 ==实验二== ===串口控制led灯=== *程序 <source lang="cpp"> 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 = "";//清空数据 } } </source> ===结果=== *实物监视: D6引脚接一个led灯。打开串口监视器,波特率选择115200,在串口监视界面填写发送数据框写入“on”,点击发送(或按回车),led点亮;写入“off”,点击发送(或按回车),led熄灭;其他情况下led都维持前一个状态。 *串口界面监视 在串口监视界面填写发送数据框写入“on”,点击发送(或按回车),返回“on led:1”;写入“off”,点击发送(或按回车),返回“off led:0”;其他情况下返回发送的字符串并且led值都维持前一个状态。 [[File:lesson22-command.jpg|600px|center|thumb]] 串口接收字符串详细参考:http://www.geek-workshop.com/thread-158-1-1.html 串口接收字符串转化成数组详细参考:http://www.geek-workshop.com/thread-260-1-1.html ==视频== |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
第二十二课--Microduino 串口调试/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息