资源描述
CC3200AI
实验教程疯壳•开发板系列
W olverine-Team2018/07/18
(1)协议类型
| UDP
(2)本地主机地址
1
(3)本地主机端口 |8011
⑥关闭
[Receive from 192. 168. 5. 11 :53686 J : s:// fengke. club/
[Receive from 192. 168.5. 11 :62463]: s:// fengke. club/
接收区设置
r接收转向文件.. .
r自动换行显示
厂显示接收时间 r 十六进制显示 厂暂停接收显示
保存却据清除将收
发送区设置
r启用文件数据源...
厂自动发送附加位
r自动发送应答包. • .
r按十六进制发送r发送周期| 1000 ms 文件载入苕除输入
LT就绪!
远程主机:|192.168.5. 11 :62463
图网络调试助手发送信息
[14:02:40.128]收
*************************************************
CC3200 UDP Socket Application *************************************************[14:02:40. 831]收♦♦Host Driver Version: 1.0. 1.6
[14:02:41. 109]收♦♦Device is configured in default state
[14:02:41.243]收♦♦Device started as STATIONConnecting to AP: fengke2. 4G ...
[14:02:41.804]收♦♦[WLAN EVENT] STA Connected to the AP: £engke2. 4G , BSSID: 28: f£:3e: a4: a8:4d[14:02:43. 946]收♦♦[NETAPP EVENT] IP Acquired: IP=192. 168.5. 11 , Gateway=192. 168.5. 1
Connected to AP: fengke2.4GDevice IP:
Sent s:// fengke. club/撑 packets successfully[14:07:43. 071]收♦♦Recu s:// fengke. club/ | packets successfully
Sent s:// fengke. club/ s:// fengke. club/| packets successfully端口号|C0M14:11「HEX显示 保存数据|「接收数据到文件厂HEX发送「定时发送:|呷0 ms/次♦加是车换行二
清除省口「翻开文件
1
发送文件|停工|看发送区]厂最前匚E”lfeh
保存参数|扩展| 一
。关闭串口]a更多串口设到1“加时间戳和分包显示,超时时间:俄一ms第「字节至保基二]加校验|None二J厂 RTS “ DTR 波特率:1115200 二]||
图1。8串口调试助手收到信息
官网地址: :〃 淘宝店: :〃官方 QQ 群:193836402
目录
官网地址: :〃 淘宝店: :〃官方 QQ 群:193836402
官网地址: :〃 fen)ke.cI u b购买链接: :〃
官方 QQ 群:193836402
官网地址: :〃 fen日ke.club淘宝店: :〃f厂方 QQ 群:193836402WIFI-UDP网络通信
UDP是User Datagram Protocol的简称,中文名是用户数据报协议。在网络中它与TCP协议一样 用于处理数据包,与TCP不一样的是,UDP是一种无连接的协议,UDP只能是尽可能地传输到目的地, 所以UDP也是具有一定的不可靠性。
那么为什么还会存在UDP呢?因为在早期的网络开发中,人们发现一些简单的网络通信不需要 经过TCP复杂的建立关系,而且过多的建立TCP连接,会造成很大的网络负担,而UDP协议可以相 对快速的处理这些简单通信。如表1O1所示为UDP组成结构。
表1.0.1 UDP的组成结构
16位源端口
16位目的端口号
16位UDP长度
16位UDP校验和
数据
CC3200支持多种基于WIFI的网络通信,UDP也不例外。
翻开Udp_Socket_Demo,如下图为main函数。
官网地址: :〃 淘宝店: :〃官方 QQ 群:193836402
void main () { long IRetVal 二 T; Boardlnit ();
UDMAInit 0; PinMuxConf ig (); InitTermO ;
DisplayBanner(APPLICATION_NAME);Init ializeAppVar iables();
IRetVal = ConfigureSimpleLinkToDefaultState (); if(IRetVal < 0) { if (DEVICE_NOT_IN_STATI0N_M0DE 二二 IRetVal) UART_PRINT (Z/Fai led to configure the device in its default state 'n'r");
L00P_F0REVER (); ) " UART_PRINT (Z/Device is configured in default state 'n'r"); IRetVal = sl_Start(0, 0, 0);
if (IRetVal < 0 || IRetVal != R0LE_STA){ -
UART_PRINT(^Failed to start the device \n'r");
L00P_F0REVER (); } " UART_PRINTCDevice started as STATION \n\r"); UART_PRINT ("Connecting to AP: %s . . . \r\n\ SSID.NAME); IRetVal = WlanConnect();
if (IRetVal < 0) { UART_PRINT ("Failed to establish connection w/ an AP \n\r"); LOOP.FOREVER ();} "
UART_PRINT CConnected to AP: %s \n\r", SSID_NAME);UART_PRINT ("Device IP: %d. %d. %d. %d\n\r\n\r'\
SL_IPV4_BYTE (g_ul IpAddr, 3),
SL_IPV4_BYTE(g_ulIpAddr, 2),
SL_IPV4_BYTE(g_ulIpAddr, 1), SL_IPV4_BYTE(g_ulIpAddr, 0)); while (1) {IRetVal 二 BsdUdpClient (P0RT_NUM);
if (IRetVal < 0) { ERR_PRINT (IRetVal); L00P_F0REVER();} "
〃 _ SINonOsMainLoop Task ();
厂 }图1.0.1 main函数
在main函数中有InitializeAppVariables该函数主要实现的是把宏定义中的UDP服务器的IP以及 端口号取出,进入建立udp的就绪状态。
ConfigureSimpleLinkToDefaultState。函数主要是实现CC3200的接入网络局部:把CC3200设置为STA 模式;并且把CC3200接入在common.h中定义好的路由器,如下图,为common.h中定义好 的路由器SSID、秘钥以及加密方式等。
官网地址: :〃 淘宝店: :〃官方 QQ 群:193836402
iifndef _COMMON_H_ idefine _COMMON_H_//
// If building vith a C++ compiler,, make all of the definitions in this header // have a C binding.
//
#ifdef _cplusplus
extern nCn{
#endif//
// Values for below macros shall be modified as per access-point (AP) properties//2k device will connect to following AP when application is executed
define SSID_NAME ^define SECURITY_TYPE ^define SECURITY_KEY ^define SSID_LEN_MAX define BSSID_LEN_MAX
wfengke2.4G" /* AP SSID */
SL_SEC_TYPE_WPA/* Security type (OPEN or WEP or WPA^/ wfengke305"/* Password of the secured AP */
32 6#ifdef NOTERM
#define UART_PRINT(x,・・・)#define DBG_PR工NT(x,・・・)
#define ERR PRINT(x)图102路由器相关信息
最重要的函数是如下图的BsdUdpClient(),通过该函数建立UDP。
官网地址: :〃 淘宝店: :〃官方 QQ 群:193836402
int BsdUdpClient (unsigned short usPort) { shortsTestBufLen;shortsTestBufLen_l;
SlSockAddrIn_t sAddr;intiAddrSize;
intiSockID;intiStatus;
unsigned long ILoopCount = 0;char g_cBsdBuf[BUF_SIZE] = "";
char g_cBsdBuf_l[BUF_SIZE_1];sTestBufLen = BUF_SIZE;
sTestBufLen.l = BUF.SIZE.l;sAddr. sin.family = SL_AF_INET;
sAd±?. sin_port = sl_Htons ((unsigned short)usPort);sAddr. sin_addr. s_ad±? = sl_Htonl ((unsigned int)g_ulDestinationIp);
iAddrSize = sizeof (SlSockAddrIn_t);
iSockID = sl.Socket (SL_AF_INET, SL_SOCK_DGRAM, 0); if ( iSockID < 0 ) {ASSERT_ON_ERROR ( SOCKET_CREATE_ERROR);
} _ _
while (ILoopCount < g_ulPacketCount) { -#if UDP.SEND ==1
iStatus = sl_SendTo(iSockID, g_cBsdBuf, sTestBufLen, 0, (SlSockAddr_t *)&sAddr, iAddrSize);
if ( iStatus <= 0 ) {s1_C1ose(iSockID);
ASSERT.ON.ERROR(SEND.ERROR); } " " lLoopCount++;UART_PRINT("Sent %s packets successfully\n\rA, g-cBsdBuf);
// UART_PRINT %u packets success fully \n\r^, g_ulPacketCount); Sendif
#if UDP_RECV ==1 iStatus = sl_RecvFrom(iSockID, g_cBsdBuf_lJ sTestBufLen_l, 0, (SlSockAddr-t *)&sAddr, (SlSocklen_t*)&iAddrSize );
memcpy(g_cBsdBuf_2, g_cBsdBuf_l, BUF_SIZE_l*sizeof (char));
if( iStatus < 0 ) {s1_C1ose(iSockID);
ASSERT_ON_ERROR(RECV.ERROR);} 一一 一
lLoopCount++;UART_PRINT(^Recv %s packets successfully\n\r^^ g_cBsdBuf_l);
//UART_PRINT(^Recv %u packets successfully\n\r^, g_ulPacke-tCoun-t);#endif } s1_C1ose(iSockID); return SUCCESS;
)图 1.0.2 BsdUdpClient。函数
该函数会先通过函数sl_SendTo()向网络中发送疯壳的官网,然后通过函数sl_RecvFrom()进入等待 接收。
翻开网络调试助手,然后点击翻开设置协议类型为“UDP”,点击翻开。把网络调试助手的“本 地主机地址”和“本地主机端口”,填写到程序中定义IP以及端口号处,如图103所示(注意IP要 为16进制);如图104所示,为网络调试助手翻开时的画面。
官网地址: :〃 淘宝店: :〃官方 QQ 群:193836402
^define IP_ADDR
#define PORT.NUM
^define BUF_SIZE
#define BUF_SIZE_1
0xC0A80509
8011
24
100
图本地IP及端口号
图网络调试助手翻开
//192. 168. 5. 9〃阳务器1P地址
//黑务器端口号〃发送缓冲区大小
〃接受缓冲区大小
编译代码,翻开UniFlash,下载bin文件到板子上(下载方法参考GPIO小节)。
下载完成后,翻开UARTA0的“RXD”,以及“CH340G_VCC”即拨码开关拨到“ON”。
翻开串口调试助手,选择相应的串口号,并且把波特率设置为115200bps,点击翻开。按下板子 上的复位键可看到串口助手打印如下图的信息。可见CC3200已经连接上了指定的路由器以 及通过UDP发送了一段消息,如图106所示。
官网地址: :〃 淘宝店: :〃官方 QQ 群:193836402[14:02:40. 128]收+♦
CC3200 UDP Socket Application *************************************************[14:02:40. 831]收+♦Host Driver Version: 1.0. 1.6
[14:02:41. 109]收一♦Device is configured in default state
[14:02:41.243]收一♦Device started as STATIONConnecting to AP: fengke2. 4G ...
[14:02:41.804]收一♦[WLAN EVENT] STA Connected to the AP: £engke2. 4G , BSSID: 28: ff:3e: a4: a8:4d[14:02:43. 946]收一♦[NETAPP EVENT] IP Acquired: IP=192. 168.5. 11 , Gateway=192, 168.5. 1
Connected to AP: fengke2.4GDevice IP:
Sent s:// fengke. club/谆 packets successfully聿重且J迫文件J|董送文件|停止|清发送区]厂最前 匚Engfch/呆存参数|扩展| 一
端口号出涮4二||「HEX显示 保存数据|厂题数据到文件|「HEX发送厂定时发送:回?。一 ”/次耳加用车换行◎ 关闭串口 I©舒串口设盍| «加时间戳和分包显示,超时时间:k ms第「字缶至|末尾二J加校验|None二J
F RTS [7 DTR 波特率:1115200~三)图串口助手打印信息
此刻网络调试助手也收到CC3200发来的信息,并自动获取到了 IP等信息,如图106所示。
图106网络调试助手收到信息
在网络调试助手中输入一串信息,点击发送,如图L0.7所示,此刻,串口调试助手也把CC3200 收到的信息打印出来,并且发送新的一串信息,如图108所示。
官网地址: :〃 fengk/.cIub淘宝店: :〃 官方 QQ 群:1938364026
展开阅读全文