Arduino--Windows蓝牙通信(二)

一、说明

《Arduino--Windows蓝牙通信(一)》实现了蓝牙模块数据透传,这一篇主要讲如何自己写代码实现Arduino--Windows数据透传,也就是通过串口通信实现蓝牙无线通信。

备选方案:

1、Python:

开发环境:Python 2.7+PyCharm+Windows

代码:

1314054-a7f29c6f9f75f774.png
在file-setting中选择上面,主义引入pyserial串口通信的库

短接TXD--RXD就可以验证Python数据通信

1314054-3cec25174b88b32f.png
代码

更加详细Python串口通信可以参考:http://blog.csdn.net/yangbingzhou/article/details/40355183

2、C++

开发环境:VS2015

因为还有其他项目,必须使用C++处理主程序,所以要在C++中进行串口通信,当时的方案有两种:C++调用Python,在Python中调用串口;或者C++直接调用串口。发现C++调用Python确实不简单,就使用了C++直接调用串口。

二、C++串口通信

这里首先会进行C++串口通信的验证,之后再连接蓝牙,进行Arduino--Windows数据无线传输。

1、硬件连接

硬件:USB转TTL     2个

连接:将第一个USB-TTL 的TXD接第二个的RXD,之后RXD--TXD


2、方案

我在网上找的C++串口通信主要有三种:使用Windows API,createfile进行串口通信,C++都试用;使用comboCom,使用与C++ MFC程序;自己写一个Serial的文件,进行通信。由于自己水平渣,并且不使用MFC编程,所以选择了第一种方案。

关于createfile进行串口通信的基础知识可以参考:http://blog.csdn.net/u014729825/article/details/50354549

3、代码


1314054-778a8215bf13a324.png
通过createfile打开串口


1314054-520324f5d8c918e6.png
设置超时以及波特率等


1314054-05dfda2b6fc0a825.png
发送数据


1314054-be7daec1a37af7ac.png
最后要关闭串口

源代码在末尾

4、验证代码运行成功

运行VS中的C++程序,同时在打开串口助手接收第二个USB--TTL的接收数据。

5、连接蓝牙进行通信

拔出第二个USB--TTL,第一个USB-TTL连接蓝牙,(不要连接EN端口,插入的时候也不用按黑色按钮),可以进行通信,可以使用Arduino自己的串口监视器或者串口助手查看Arduino接收数据。


1314054-71ff78cfec5ca1c6.png
连接蓝牙
1314054-e161367ba29526eb.png
Arduino--Windows通信流程图,需要两个HC05

三、串口通信遇到的坑

1、createfile报错


1314054-e4b53c9c1a34ca6b.png
字符集使用多字节字符集

2、com口打不开

首先确定是正确的端口,可以在设备管理器中查看或者在串口助手中查看;

其次,如果打不开串口,使用


1314054-5e2b664e316eb941.png
在com前加上\\等符号

3、串口打开之后,但数据无法发送

首先要配置通信超时,可以按照上面的代码配置;

其次,要发送的数据使用memcpy,而不要直接复制


1314054-bdf48f5ac10c8192.png
不要使用注释掉的代码

四、C++源代码下载

源代码:链接:http://pan.baidu.com/s/1gf88LoR 密码:hu3b


end

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值