求利用51单片机发送AT指令给蓝牙模块,并接收返回信息进行处理的程序 |
您所在的位置:网站首页 › 蓝牙是串口吗怎么连 › 求利用51单片机发送AT指令给蓝牙模块,并接收返回信息进行处理的程序 |
蓝牙有RXD与TXD引脚, 用串口通信 ,代码可以参考网上的一些资料 使用AT指令的时候,先使蓝牙模块进入AT模式,然后你就当蓝牙就是命令的接收端,单片机或者PC串口就是命令的发送端(就当蓝空芹牙是独立的模块)。 串口配亏虚发送的AT数据是直接给蓝牙模块的,这个串口可以是PC串口也可以是单片机串口。 如果你想用单片机实现培燃AT指令设置蓝牙,就用一个IO控制蓝牙模块的KEY管脚,把AT指令写在程序中,通过串口发送给蓝牙模块。 参考《吴鉴鹰单片机项目实战精讲》 要满毁让和足这三个条件:1,单开线程自动写at 2,单开线程读at 3,打开文件读配置,将读出来后的配置文件放到log文件里去。 这边记录下如何在ui下开一个线程的过程:用一滑粗个handler变量调用handler.post函数,然后在runnable里面重写run接口就可以,实际上,这样调用出来的线程跟ui主线程是一个线程,不会创建新的。所以这边如果要用线程创建的话,必须 wthread = new HandlerThread("thread") wthread.start() wHandler = new Handler(wthread.getLooper()) wHandler.post(runnable) 这时重写runnable的run函数才可以实现重新开启一个线程。 在这个线程里面可以读写串口,但是界面的刷新不能在这个子线程里面做。必须主线程在做一个handler,纤盯然后子线程调用Message 变量传进主线程的handler.sendMessage(msg)然后主线程用handlerMessage接收子线程传过来的消息,在主线程里面刷新界面。 用socket试试看;端口号和ip地址自己改一下 using System.Net using System.Net.Sockets static void Main(string[] args)//服务器段 { int port = 2000 string host = "127.0.0.1" /**/ ///创建终没侍镇结点(EndPoint) IPAddress ip = IPAddress.Parse(host)//把ip地址字符串转换为IPAddress类型的实例 IPEndPoint ipe = new IPEndPoint(ip, port)//用指定的端口和ip初始化IPEndPoint类的新实例 /**/ ///创建socket并开始监听 Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)//创建一个socket对像,如果用udp协议,则要用SocketType.Dgram类型的套接字 s.Bind(ipe)//绑定EndPoint对像(2000端口和ip地址) s.Listen(0)//开始监听 Console.WriteLine("等待客户端连接") /**/ ///接受到client连接,为此连接建立新的socket,并谈手接受信息 Socket temp = s.Accept()//为新建连接创建新的socket Console.WriteLine("建立连接") string recvStr = "" byte[] recvBytes = new byte[1024] int bytes bytes = temp.Receive(recvBytes, recvBytes.Length, 0)//从客户端接受信息 recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes) /**/ ///给client端返回信息 Console.WriteLine("server get message:{0}", recvStr)//把客户端传来的信息显示出来 string sendStr = "ok!Client send message successful!" byte[] bs = Encoding.ASCII.GetBytes(sendStr) temp.Send(bs, bs.Length, 0)//返回信息给客户端 temp.Close() s.Close() Console.ReadLine() } static void Main(string[] args)//客户端 { try { int port = 2000 string host = "127.0.0.1" /**/ ///创建终结点EndPoint IPAddress ip = IPAddress.Parse(host) //IPAddress ipp = new IPAddress("127.0.0.1") IPEndPoint ipe = new IPEndPoint(ip, port)//把ip和端口转化为IPEndpoint实例 /**/ ///创建socket并连接到服务器 Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)//创建Socket Console.WriteLine("Conneting…") c.Connect(ipe)//连接到服务器 /**/ ///向服务器发送信息 string sendStr = "hello!This is a socket test" byte[] bs = Encoding.ASCII.GetBytes(sendStr)//把字符串编码为字节 Console.WriteLine("Send Message") c.Send(bs, bs.Length, 0)//发送信息 /**/ ///接受枯粗从服务器返回的信息 string recvStr = "" byte[] recvBytes = new byte[1024] int bytes bytes = c.Receive(recvBytes, recvBytes.Length, 0)//从服务器端接受返回信息 recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes) Console.WriteLine("client get message:{0}", recvStr)//显示服务器返回信息 /**/ ///一定记着用完socket后要关闭 c.Close() } catch (ArgumentNullException e) { Console.WriteLine("argumentNullException: {0}", e) } catch (SocketException e) { Console.WriteLine("SocketException:{0}", e) } Console.WriteLine("Press Enter to Exit") } 欢迎分享,转载请注明来源:内存溢出 原文地址:https://outofmemory.cn/yw/12568396.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |