本帖最后由 aimejia 于 2018-5-31 11:15 编辑 ) l, a. S1 D( t0 G* A0 r Q9 @
/ H% \: X" y. z4 K5 B& a基于STM32的ESP8266使用教程(一); I: g; I; s0 ] o
基于STM32的ESP8266使用教程(二)
. n7 [$ _0 h0 G1 C基于STM32的ESP8266使用教程(三)
^( x7 d! I4 V& m( y- K基于STM32的ESP8266使用教程(四)(短篇)8 q: k2 e/ I X: X! p# a* }
9 Q4 v* L. Y' x写在前面:在上一篇中介绍了通过单片机发送指令控制WIFI模块,本来想写一下时钟、I/O口及串口的初始化函数,但是因为项目年代久远(一年前做的),怕有错误,误导博友,故不给出代码,见谅。本章要介绍Android端通过WIFI与手机建立连接并通信的过程。: s: v, x0 G7 C% Q& o* d" x x
- Y1 c; W: {- T1 ]% Q( o
我们使用Socket类,即“套接字”进行通信。由于其相关说明对程序开发没有多大帮助,故不再赘述,只需知道使用其进行通讯需要目标的IP地址及端口号即可,直接来看代码:, H7 P& [8 B' R' ?+ R2 y; m5 l( |
- [java] view plain copy
* U5 K" {% b, |6 }5 B - Test_Button.setOnClickListener(new OnClickListener(){
" Q$ C% M+ A' U/ ^4 Y: S( _& S - @Override & S, ?! X6 W4 y% Z0 [$ ?- b
- public void onClick(View v){
; Z' i5 m# X1 ~9 g4 b/ P4 ?4 g - //在子进程中完成数据的获取,在主进程中完成UI更新 h- d2 n6 m1 ~) t2 W. z" m
- new Thread(new Runnable(){//开启一个线程 ' \& ~) }5 J5 S$ T) b
- @Override 1 V# C9 e6 L4 Y% x5 q& D
- public void run(){ . Y, t6 F+ h) }1 _$ a3 X: S
- try{ . ^' V) v; r; F! u1 p& G0 S5 v
- Socket TestSocket = new Socket();//new一个socket : ^: x; q% ?# p% \8 E5 V
- TestSocket.connect(new InetSocketAddress("192.168.4.1", 8080), 8000);//三个参数分别是IP、端口、超时 % _1 b. @$ r( o1 e! | ~' X
- OutputStream TestOS = TestSocket.getOutputStream();//输出流 - f0 }: K! Z. `: U+ [
- InputStream TestIS = TestSocket.getInputStream();//输入流 ( m- ~- a) v& U4 {+ n+ W" r6 u7 ^
- byte send_buffer[] = {40};//输出字符数组 2 y" ~" c8 i% n8 Z
- byte rec_buffer[] = new char[10];//输入字符数组
$ o: N W C! n( C4 _& J& m* k - TestOS.write(buffer);//这样字符就发送了 , W& h5 W) d0 U) K n3 s2 q- a# c+ `
- for(int i = 0; i < 10; i++){ + V+ a5 O: h6 }5 ]2 F
- rec_buffer[i] = TestIS.read();//read()方法是一个字符一个字符接收 % ^* e7 x. D: r; X) z
- }
+ i+ u' A6 z6 \! S* E* X% k - //关闭所有流及socket 3 f6 o8 \, \8 _; v5 x
- TestOS.close();
( N) G3 X+ u* X: t9 M. B4 p - TestIS.close();
& t/ K( `: V4 N7 } - TestSocket.close();
$ I) c) |. J2 _# E1 n5 b. I - //接下去可对收到的数据进行操作
, O" n& x) G' D# Q% B - } " C, d4 T3 l: c" J" {
- catch(Exception e){ ! Z) Q& p8 Y/ @- p
- //可以打印错误日志啥的
2 z5 d7 }$ r/ S& b* l - }
' |4 W) s# v& p) T - }
- x! N7 X7 ^8 g0 P {: ` - }).start(); 6 a" i) _6 h0 K+ N7 [* P
- } , k. V3 ?) m6 E" U/ [; n. M' d9 A3 q
- });
复制代码 总结一下:通信过程很简单,建立一个Socket,调用connect()方法,通过输入输出流传递数据,最后关闭流和Socket即可。
3 @, ]5 ?( e5 }7 P1 S; G3 w
# X: M5 d0 b, E% ]5 W至此,完成了全部关于WIFI模块的使用教程。下面放上百度盘链接:网络调试助手下载链接:点击打开链接 串口调试助手下载链接:点击打开链接1 @+ U4 z* W! H$ _1 n
0 Y' ], g% D4 g, c8 j9 c2 z% [2 K# U# \" ^
2 b2 P/ i% |( U3 q |% q |