前言
一直以来都在看各位大佬的文章,一直在学习,自己也想着能做一些有趣的程序项目发表一下,也是自己第一次来写文章,如果有写的不好的,或是大家没有理解的地方还请大家能提出来!
自己准备开始做物联网这一块,开发平台确定是用Arduino,要开始涉及几种通信协议,其中一种就是串口,问题来了,手上只有Arduino,杜邦线和支持串口的设备,但是没有USB-TTL(USB转串口)模块来调试怎么办,这里就是想着自己做一个Arduino程序来进行串口调试,可以用来代替USB转串口模块(暂时不可完全代替串口助手)。
准备材料
- Arduino IDE(这里用的是1.8.5)Arduino官方软件下载地址
- Arduino主控板(这里用的是Arduino Mega2560)
- 杜邦线(当然也可以用面包线面包板来做实验)
- 蓝牙模块(BLE_4.0)
- Blinker(物联网调试手机软件)Android下载地址 IOS下载地址
串口指令
在此之前需要了解一下串口指令,已经会的朋友可以跳过这一步,有兴趣想学习的朋友可以参考一下这两篇,在这里感谢一下 iracer大大 和 jake_wolf大大的贡献。
Arduino - 串口操作函数与示例代码大全 by iracerr
Arduino串口的一些高级用法 by jake_wolf
接线
将主控板的RXD1对应接到串口模块的TXD,并把主控板的TXD1对应接到串口模块的RXD.。
Blinker
进入APP后点击右上角<加号>,点击下拉栏选择<添加设备>,进入后点击DIY设备中的<Arduino>,进到Arduino接入向导后点击左下角的<蓝牙接入>,点击后软件开始搜索蓝牙设备,选择<对应的设备>进行添加,弹出“设备添加成功”后即可使用,点击空白栏中出现的<Arduino蓝牙设备>,点击右上角<编辑>后下面弹出滑动栏,滑到最右侧选择<调试>后点击右上角<锁定>。
调出这个调试框后我们就可以向已经连接到Arduino主控板的蓝牙模块进行调试了。
代码
注意:
串口助手发送(Blinker接收):发送字符为偶位字符时,将会把字符进行十六进制到十进制的转换(串口设备不接收十六进制码,需要在这里转换成十进制)
串口助手接收(Blinker发送):串口助手会将接收到的所有字符(ASCII十进制)转换成正常的字符(ASCII符号)来显示。例:接收字符:65 ——> 转换后:A 。此外一点要注意的就是Blinker发送的的格式有以下这几种,由于APP功能博主也不是很清楚,所以介绍会放到以后来讲。
- "xx" —— 调试框
- {"xx":"xx"} ——按键
- {"xx":[xx]} ——颜色、摇杆
- {"xx":xx} ——滑块
int DTS_val;
int DTS_return;
int DTS_return_1;
int DTS_return_2;
int ASCII_Extra;//额外内容
int line_count;//命令行计数
int line_state;
int ASCII_Control_Character;//控制字符