中国蓝牙上海通信管理局 备案要备案吗

android和PC之间通过蓝牙通信,该怎么实现?PC要求用VC++收取信息
[问题点数:40分]
android和PC之间通过蓝牙通信,该怎么实现?PC要求用VC++收取信息
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。wp7手机怎样与蓝牙模块通信?有高手请留下联系方式。。不用具体细节,只要整体思路_百度知道蓝牙通信问题 - 单片机论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
蓝牙通信问题
15:41:46  
我想两块单片机之间蓝牙通信。单片机用的c52,蓝牙用的hc05和06.把程序分别下载进去之后,将两块单片机的rxd和txd直接用线反接可以达到效果。但是换成蓝牙之后就不行了,蓝牙配对正常。我不知道蓝牙的波特率是多少,两块单片机的串口波特率一致。
发送数据的单片机
#include &reg51.h&
#include &dulianjian_diceng.H&
void InitUART()
& &SCON = 0x50;& & & & & & & & & & & & & & & & //串口工作方式1
& &TMOD = 0x20;& & & & & & & & & & & & & & & & //定时器工作方式2
& &PCON = 0x80;& & & & & & & & & & & & & & & & //波特率加倍
& &TH1 = 0xF3;& & & & & & & & & & & & & & & & //波特率4800
& &TL1 = 0xF3;& & & & & & & & & & & & & & & & //波特率4800
& &ES=1;& & & & & & & & & & & & & & & & & & & & //打开接收中断
& &EA=1;& & & & & & & & & & & & & & & & & & & & //打开总中断
& &TR1=1;& & & & & & & & & & & & & & & & & & & & //打开计数器
void main ()
&&InitUART();
&&while(1)
void UARTInterrupt() interrupt 4
& &a=dulianjian();
& &if(a==2)
& &receivedata = 'b';
& &if(a==3)
& &receivedata = 'c';
& &if(a==4)
& &receivedata = 'd';
//& &receivedata = SBUF;& & & & //SBUF作为接收缓冲器
//& &RI = 0;& & & & & & & & & & & & & & & & //接收中断标志位复位
& &SBUF =& & & & //SBUF作为发送缓冲器
& &while(!TI);& & & & & & & & & & & & //等待数据发送完成
& &TI = 0;& & & & & & & & & & & & & & & & //发送中断标志位复位
接收数据的单片机
#include &reg51.h&
#include &7wsmg_diceng.H&
void InitUART()
& &SCON = 0x50;& & & & & & & & & & & & & & & & //串口工作方式1
& &TMOD = 0x20;& & & & & & & & & & & & & & & & //定时器工作方式2
& &PCON = 0x80;& & & & & & & & & & & & & & & & //波特率加倍
& &TH1 = 0xF3;& & & & & & & & & & & & & & & & //波特率4800
& &TL1 = 0xF3;& & & & & & & & & & & & & & & & //波特率4800
& &ES=1;& & & & & & & & & & & & & & & & & & & & //打开接收中断
& &EA=1;& & & & & & & & & & & & & & & & & & & & //打开总中断
& &TR1=1;& & & & & & & & & & & & & & & & & & & & //打开计数器
void main ()
&&InitUART();
&&while(1)
void UARTInterrupt() interrupt 4
& &receivedata = SBUF;& & & & //SBUF作为接收缓冲器
& &while(!RI);& & & & & & & & & & & & //等待数据接收完成
& &RI = 0;& & & & & & & & & & & & & & & & //接收中断标志位复位
& &if(receivedata=='b')
& && &xianshishuzi(10);& & & && &//消隐
& & & && &shuziweishu(8);& & & && &//第几位显示
& && &xianshishuzi(1);& & //显示什么数字
& && &delay(50);& & & & & & & && &//延时
& &if(receivedata=='c')
& && &xianshishuzi(10);& & & && &//消隐
& & & && &shuziweishu(8);& & & && &//第几位显示
& && &xianshishuzi(2);& & //显示什么数字
& && &delay(50);& & & & & & & && &//延时
& &if(receivedata=='d')
& && &xianshishuzi(10);& & & && &//消隐
& & & && &shuziweishu(8);& & & && &//第几位显示
& && &xianshishuzi(3);& & //显示什么数字
& && &delay(50);& & & & & & & && &//延时
//& &SBUF =& & & & //SBUF作为发送缓冲器
//& &while(!TI);& & & & & & & & & & & & //等待数据发送完成
//& &TI = 0;& & & & & & & & & & & & & & & & //发送中断标志位复位
17:14:22  
蓝牙的波特率默认9600~
17:28:03  
蓝牙的波特率默认9600~
蓝牙的波特率被调过
34脚是蓝牙模块的哪个脚
我用蓝牙测试软件有问题,用不了
19:01:48  
最新进展,现在怎么办
(14.58 KB, 下载次数: 11)
19:01 上传
10:25:38  
建议用HC05或03,04、06是工业级的
我也不知道这个是零几了
一个型号是fc-114
一个型号是zs-040
百度不到啊
我用的师兄用过的,没有原始资料
16:40:59  
问题已经解决了
12:52:41  
怎么解决的可以透露一下吗?34脚是哪个脚?
21:33:48  
怎么解决的可以透露一下吗?34脚是哪个脚?
忘了怎么解决的了。。。
我用的是师兄的,这一块和网上的不太一样
12:30:04  
楼主如果你能看见我的回复,麻烦你帮个忙。我现在用的是zs-040蓝牙模块,只是没有at指令集,希望你能发给我一份。若有教程就更好了。先谢了!
10:35:47  
楼主如果你能看见我的回复,麻烦你帮个忙。我现在用的是zs-040蓝牙模块,只是没有at指令集,希望你能发给我一份。若有教程就更好了。先谢了!
一年之前的了,我都忘了。。。。。。
Powered by| 漏洞检测 |
| 隐藏捆绑 |
关于Android蓝牙串口通信那点破事
Android蓝牙串口通讯 闲着无聊玩起了Android蓝牙模块与单片机蓝牙模块的通信,简单思路就是要手机通过蓝牙发送控制指令给单片机,并作简单的控制应用。单片机的蓝牙模块连接与程序暂且略过,此文主要描述Android手机蓝牙客户端遇到的那点破事。进入正题: 连
闲着无聊玩起了模块与单片机蓝牙模块的,简单思路就是要手机通过蓝牙发送控制指令给单片机,并作简单的控制应用。单片机的蓝牙模块连接与程序暂且略过,此文主要描述Android手机蓝牙客户端遇到的那事。进入正题:
连接蓝牙设备DD蓝牙客户端:
Android手机一般以客户端的角色主动连接SPP协议设备(接上蓝牙模块的数字传感器),客户端连接流程是:
1.使用registerReceiver注册BroadcastReceiver来获取蓝牙状态、搜索设备等消息;
privateBroadcastReceiversearchDevices
newBroadcastReceiver() {
publicvoid
onReceive(Context context, Intent intent) {
String action = intent.getAction();
Bundle b = intent.getExtras();
Object[] lstName = b.keySet().toArray();
//显示所有收到的消息及其细节
=0; i < lstName.i&#43;&#43;) {
String keyName = lstName[i].toString();
Log.e(keyName,String.valueOf(b.get(keyName)));
//搜索设备时,取得设备的MAC地址
if(BluetoothDevice.ACTION_FOUND.equals(action))
BluetoothDevice device = intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String str= device.getName() &#43;"|"
&#43;device.getAddress();
if(lstDevices.indexOf(str)
== -1)//防止重复添加
lstDevices.add(str);//
获取设备名称和mac地址
adtDevices.notifyDataSetChanged();
2.使用BlueAdatper的搜索:
btAdapt.startDiscovery();
3.在BroadcastReceiver的onReceive()里取得搜索所得的蓝牙设备信息(如名称,MAC,RSSI);
4.通过设备的MAC地址来建立一个BluetoothDevice对象;
5.由BluetoothDevice衍生出BluetoothSocket,准备SOCKET来读写设备;
6.通过BluetoothSocket的createRfcommSocketToServiceRecord()方法来选择连接的协议/服务,这里用的
是SPP(UUID:0-805F9B34FB);
btSocket=btDev.createRfcommSocketToServiceRecord(uuid);
}catch(IOException
//TODOAuto-generated
catch block
Log.e(TAG,"Low:
Connection failed.",e);
成功后进行连接:
btSocket.connect();
Log.e(TAG,"
BT connection established, data transfer linkopen.");
mangeConnectedSocket(btSocket);//自定义函数进行蓝牙处理
}catch(IOException
Log.e(TAG,"
Connection failed.", e);
setTitle("连接失败..");
7.Connect之后(如果还没配对则系统自动提示),使用
BluetoothSocket的getInputStream()和getOutputStream()来读写蓝牙设备。
读写可以归到一个独立线程去实现~注意:读时必须一直循环读取缓冲区,写可以不需要。
按以上7步逐次走过后,你就会发现Android蓝牙模块是多么的坑爹了。
出现问题:
在第6步一般初学者都会报错:执行.connect()发生异常Connection
此时执行不下去咯,怎么办怎么办呢?
于是边debug边网上找攻略,总算在Google出老外的一些做法,尝试了下,貌&#20284;还可行。也即把
btSocket的建立方法采用另一种方法替代,这里都使用端口1
m =btDev.getClass().getMethod("createRfcommSocket",newClass[]
{int.class});
btSocket=(BluetoothSocket)
m.invoke(btDev,Integer.valueOf(1));
}catch(SecurityException
//TODOAuto-generated
catch block
e1.printStackTrace();
}catch(NoSuchMethodException
//TODOAuto-generated
catch block
e1.printStackTrace();
}catch(IllegalArgumentException
//TODOAuto-generated
catch block
e.printStackTrace();
}catch(IllegalAccessException
//TODOAuto-generated
catch block
e.printStackTrace();
}catch(InvocationTargetException
//TODOAuto-generated
catch block
e.printStackTrace();
至此,这个问题貌&#20284;倒也解决了,程序继续往下跑。
但这里请记住之前的异常,先别急着抛开~人家不一定一直都是异常哦
接下来的任务是,让手机通过蓝牙跟单片机的蓝牙模块通信,并发送数据,通过电脑串口调试助手显示出来。具体实现,在mangeConnectedSocket(btSocket)方法中实现,里面通过启动另一个Activity实现。不是重点,略过。
直到这里,我们都只是把手机蓝牙模块充当客户端来使用,那什么时候会用到服务端呢?其实,之前手机蓝牙与单片机蓝牙模块的通信,单片机蓝牙模块就充当了服务端(处于监听状态,被手机蓝牙连接)。为了更好地搞清楚Android蓝牙通信,我们接下来使用2个手机的蓝牙进行通信。简单地说,就是做一个“手机蓝牙扣扣”,⊙╊⊙b汗
一开始就想天真地把之前的程序同时烧到2部手机中,发现只有一部手机能正常建立socket连接(主动连接的那台),而另一部却迟迟没有响应。原因很简单,服务端的程序还没有编写!
于是,开始服务端程序:开辟一个新的线程实现
连接蓝牙设备DD蓝牙服务端:
classAcceptThreadextendsThread
privatefinal
BluetoothServerSocket
publicAcceptThread()
Use a temporary object that is later assignedto mmServerSocket,
because mmServerSocket isfinal
BluetoothServerSocket tmp=
//tmp =btAdapt.listenUsingRfcommWithServiceRecord("MyBluetoothApp",uuid);
Log.e(TAG,"&#43;&#43;BluetoothServerSocketestablished!&#43;&#43;");
Method listenMethod =
btAdapt.getClass().getMethod("listenUsingRfcommOn",
Class[]{int.class});
tmp= ( BluetoothServerSocket) listenMethod.invoke(btAdapt,
Integer.valueOf(
}catch(SecurityException
//TODOAuto-generated
catch block
e.printStackTrace();
}catch(IllegalArgumentException
//TODOAuto-generated
catch block
e.printStackTrace();
}catch(NoSuchMethodException
//TODOAuto-generated
catch block
e.printStackTrace();
}catch(IllegalAccessException
//TODOAuto-generated
catch block
e.printStackTrace();
}catch(InvocationTargetException
//TODOAuto-generated
catch block
e.printStackTrace();
serverSocket=
publicvoid
Keep listening until exception occurs or asocket is returned
//mState!=STATE_CONNECTED
while(true){//这里是一直循环监听,也可以设置mState来判断
serverSocket.accept();
Log.e(TAG,"&#43;&#43;BluetoothSocket
established! DataLinkopen.&#43;&#43;");
}catch(IOException
If a connection was accepted
if(socket!=
Do work to manage the connection (in a separatethread)
manageConnectedSocket();
serverSocket.close();
}catch(IOException
//TODOAuto-generated
catch block
e.printStackTrace();
publicvoid
cancel() {
serverSocket.close();
}catch(IOException
(责任编辑:幽灵学院)
------分隔线----------------------------
今天有空复习了一下Android中AIDL的使用,由于平时开发中使...
在之前的文章深入探究了Handler,我们知道了Android的消息机...
?之前一段时间,我都在研究Android自定义View的相关知识,随...
什么是ViewPager,刚一听到这个词,我们可能感觉很奇怪,但...
Only the original thread that created a view hierarchy c...
在这里写出我们项目中常用的两种弹窗方式,底部弹窗以及中间...
工作日:9:00-21:00
周 六:9:00-18:00
&&扫一扫关注幽灵学院蓝牙通信_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
共10个文档
格式 文档名称 用户评分 浏览量 下载量

我要回帖

更多关于 广东省通信管理局备案 的文章

 

随机推荐