详情地址:https://fengke.club/GeekMart/views/offline/ai
购买链接:https://fengke.club/GeekMart/su_fKw7Nb7oC.jsp
视频地址:https://fengke.club/GeekMart/su_f9cTSxNsp.jsp
官方QQ群:457586268
WIFI-UDP网络通信UDP是User Datagram Protocol的简称, 中文名是用户数据报协议。在网络中它与TCP协议一样用于处理数据包,与TCP不一样的是,UDP是一种无连接的协议,UDP只能是尽可能地传输到目的地,所以UDP也是具有一定的不可靠性。
那么为什么还会存在UDP呢?因为在早期的网络开发中,人们发现一些简单的网络通信不需要经过TCP复杂的建立关系,而且过多的建立TCP连接,会造成很大的网络负担,而UDP协议可以相对快速的处理这些简单通信。如表1.0.1所示为UDP组成结构。
表1.0.1 UDP的组成结构
16位源端口 | 16位目的端口号 |
16位UDP长度 | 16位UDP校验和 |
数据 |
CC3200支持多种基于WIFI的网络通信,UDP也不例外。
打开Udp_Socket_Demo,如图1.0.1所示为main函数。
图1.0.1 main函数
在main函数中有InitializeAppVariables该函数主要实现的是把宏定义中的UDP服务器的IP以及端口号取出,进入建立udp的就绪状态。
ConfigureSimpleLinkToDefaultState()函数主要是实现CC3200的接入网络部分:把CC3200设置为STA模式;并且把CC3200接入在common.h中定义好的路由器,如图1.0.2所示,为common.h中定义好的路由器SSID、秘钥以及加密方式等。
图1.0.2 路由器相关信息
最重要的函数是如图1.0.2所示的BsdUdpClient(),通过该函数建立UDP。
图1.0.2 BsdUdpClient()函数
该函数会先通过函数sl_SendTo()向网络中发送疯壳的官网,然后通过函数sl_RecvFrom()进入等待接收。
打开网络调试助手,然后点击打开设置协议类型为“UDP”,点击打开。把网络调试助手的“本地主机地址”和“本地主机端口”,填写到程序中定义IP以及端口号处,如图1.0.3所示(注意IP要为16进制);如图1.0.4所示,为网络调试助手打开时的画面。
图1.0.3 本地IP及端口号
图1.0.4 网络调试助手打开
编译代码,打开UniFlash,下载bin文件到板子上(下载方法参考GPIO小节)。
下载完成后,打开UARTA0的“RXD”,以及“CH340G_VCC”即拨码开关拨到“ON”。
打开串口调试助手,选择相应的串口号,并且把波特率设置为115200bps,点击打开。按下板子上的复位键可看到串口助手打印如图1.0.5所示的信息。可见CC3200已经连接上了指定的路由器以及通过UDP发送了一段消息,如图1.0.6所示。
图1.0.5 串口助手打印信息
此刻网络调试助手也收到CC3200发来的信息,并自动获取到了IP等信息,如图1.0.6所示。
图1.0.6网络调试助手收到信息
在网络调试助手中输入一串信息,点击发送,如图1.0.7所示,此刻,串口调试助手也把CC3200收到的信息打印出来,并且发送新的一串信息,如图1.0.8所示。
图1.0.7 网络调试助手发送信息
图1.0.8 串口调试助手收到信息