0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用小凌派开发板自带的wifi功能来进行tcp通信的教程

海阔天空的专栏 来源:凌智电子 作者:凌智电子 2022-05-13 15:05 次阅读

基于小凌派RK2206开发板wifi-tcp通信实验

在开发过程中想要与开发板进行通信一般使用串口通信,当开发板使用串口与pc通信还需要专门的串口转换工具才行。而小凌派开发板自带wifi功能。因此与pc通信时可以使用wifi功能进行tcp通信这样就不需要专门的转换工具非常方便。

一、在使用小凌派开发板wifi进行tcp通信的步骤

1、要确定pc机所连接路由的wifi名称和密码。通过修改代码使小凌派连接到与pc同一网络

修改文件device/rockchip/rk2206/sdk_liteos/board/src/config_network.c 中的SSID 即wifi名称,和PASSWORD 即wifi密码。

#define SSID “凌智电子

#define PASSWORD “********”

2、确认小凌派wifi功能是否开启

查看device/rockchip/rk2206/sdk_liteos/board/main.c 文件

是否调用ExternalTaskConfigNetwork();

3、确认小凌派开发板与开发板在同一网段。

在修改以上配置后先编译烧录程序然后查看log确认小凌派开发板获取到的ip地址。

poYBAGJ-AC2AVvskAAB-CdqsLfA976.png

在确认pc的ip地址,在控制台输入ipconfig

pYYBAGJ-ADSAACqCAAAQn4220GI097.png

可以看到两个ip地址都是点2网段,说明已经在同一局域网。

4、 修改wifi_tcp 例程中服务地址及端口

#define OC_SERVER_IP “192.168.2.49”

#define SERVER_PORT 6666

这个ip地址即PC的ip地址,修改后重新编译烧录程序。

5、 pc上打开两个网络调试工具,一个客户端和一个服务端,并设置ip地址和端口号

服务端 ip地址:0.0.0.0

端口号:6666

客户端ip地址:192.168.2.50 (之前查看到小凌派的ip地址)

端口号:6666

pYYBAGJ-AGqAM0D6AACIo8Hz0Z0834.png

6 、查看log等待小凌派的tcp客户端和服务端任务启动

poYBAGJ-AHCAHxi2AAJc1wBLRCk146.png

可以看到客户端连接地址192.168.2.49:6666 即pc的ip地址

服务端监听端口为6666

这表示小凌派tcp客户端和服务端任务都已经启动。

7、 在pc网络调试助手点击启动客户端和服务端

pYYBAGJ-AN6AbcuaAACXnY4vQlU001.png

可以观察到网络调试助手服务端有设备连接成功并且接收到了调试数据。

网络调试助手的客户端也显示连接成功。

8、 使用网络调试助手发送数据

pYYBAGJ-AO2AXpUgAADycjCYJ5A369.png

可以查看log发现小凌派开发板已经可以正常收发数据了。

这样就可以通过使用wifi与pc进行通信。

二、接下来分析一下代码的工作流程。

首先包含必要的头文件

poYBAGJ-AS2AAsi4AAA_KnkXthA711.png

这些定义主要是 ip地址和端口号以及缓存大小

poYBAGJ-ATSAUoOHAAAcLJiJPbY713.png

这部分是获取wifi连接信息,通过查询wifi连接信息确认wifi是否连接成功。只有wifi连接成功了才能进行tcp通信

poYBAGJ-AZ6AedMsAAESgPAL4eY547.png

这部分是tcp服务端接收消息处理

先进入accept()会处于阻塞状态,即没有客户端连接时一直阻塞。

单客户端连接后又进入接收数据状态,此状态也是阻塞状态。

没有数据时一直阻塞,不过需要注意的是在此状态下当客户端断开连接时recv会返回-1

接收到pc客户端的消息后通过send()发响应消息给PC客户端。

pYYBAGJ-Ah-AM_SGAAEvTASLWAs297.png

这部分是tcp服务端任务代码

服务端处理流程

socket--》bind--》listen--》accept--》recv--》send--》lwip_close

先通过socket()接口打开一个服务端socket文件

然后设置需要绑定的服务端ip地址及端口号。

在进行监听,需要注意的是此处监听不会处于阻塞态。

pYYBAGJ-AkWACPzbAAF2OYC2b_g126.png

这部分是tcp客户端的接收消息处理函数

先进行尝试连接pc机的服务端,如果失败则延迟5秒后重新连接直到连接成功。

连接成功后先发消息给PC的服务端,然后进入接收状态,此状态是阻塞态。

当接收到pc的消息后进入循环发送状态。

poYBAGJ-AnCATWpVAAEJr-dl5GU193.png

这部分代码是tcp客户端代码

客户端处理流程

socket--》connect--》send--》recv--》lwip_close

先通过socket()接口创建客户端的socket文件。

然后设置客户端连接PC服务端的ip地址及端口号。

在进行connect连接。

poYBAGJ-ApOAfG0wAADoo_Q-tDs688.png

这部分是tcp创建客户端和服务端任务

可以看到在创建客户端和服务端任务前先阻塞判断wifi的连接状态。

只有wifi连接成功后才创建客户端和服务端任务。

poYBAGJ-ArKAf_OuAABZRJFVVr4124.png

这部分是创建wifi tcp 通信任务主要是为了使用APP_FEATURE_INIT(wifi_tcp_example);

这样当OpenHarmony初始化完成后会自动执行此任务。

pYYBAGJ-AreAcTivAACEGyU__jQ006.png

来源: 凌智电子

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WIFI
    +关注

    关注

    81

    文章

    5286

    浏览量

    203263
  • 开发板
    +关注

    关注

    25

    文章

    4943

    浏览量

    97177
  • TCP通信
    +关注

    关注

    0

    文章

    146

    浏览量

    4215
  • 小凌派
    +关注

    关注

    0

    文章

    27

    浏览量

    1193
收藏 人收藏

    评论

    相关推荐

    如何使用Vitis自带的LWIP模板进行PS端千兆以太网TCP通信

    开发板有两路千兆以太网,通过RGMII接口连接,本实验演示如何使用Vitis自带的LWIP模板进行PS端千兆以太网TCP通信
    的头像 发表于 04-28 10:44 3013次阅读
    如何使用Vitis<b class='flag-5'>自带</b>的LWIP模板<b class='flag-5'>进行</b>PS端千兆以太网<b class='flag-5'>TCP</b><b class='flag-5'>通信</b>?

    如何利用XR806开发板TCP通信进行测试呢

    如何利用XR806开发板TCP通信进行测试呢?其测试代码该怎样去是实现呢?
    发表于 12-28 07:48

    基于小RK2206开发板wifi-tcp通信实验

    开发过程中想要与开发板进行通信一般使用串口通信,当开发板使用串口与pc
    发表于 05-13 09:20

    每周精选 | 小RK2206开发板wifi-tcp通信实验,Markdown编辑器有奖体验活动

    开发板进行通信一般使用串口通信,当开发板使用串口与pc通信还需要专门的串口转换工具才行。而小
    发表于 05-13 10:25

    【小RK2206开发板试用体验】小手势应用之原力控制星球大战BB-8机器人

    在上一篇文章中,我分享了 小隔空操作迪文COF智能屏 ,这次再给大家分享一个更有趣的智能手势应用----小RK2206开发板赋予你原
    发表于 05-24 10:56

    【小RK2206开发板试用体验】第5章 使用WiFi联网

    开发环境:开发系统:Ubuntu 20.04开发板:小-RK2206开发板OpenHarmo
    发表于 05-27 23:00

    基于小RK2206开发板wifi-udp通信实验

    显示,这些消息是不断被覆盖的,使用udp就高效的多。一、在使用小开发板wifi进行udp通信
    发表于 05-31 10:12

    如何在小RK2206开发板上使用wifi进行tcp通信

    文件,指定 b7_wifi_tcp 参与编译。"b7_wifi_tcp",在主目录下输入编译命令。hb build -f运行结果示例代码编译烧录代码后,按下开发板的RESET按键
    发表于 08-12 16:50

    基于小RK2206开发板所制作的简易示波器

    基于OpenHarmony + 小RK2206开发板制作的简易示波器,实时采集波形,实时计算并实时显示对应的波形。OpenHarmony实时性较高,稳定性好,瑞芯微RK2206芯片接口丰富
    的头像 发表于 05-06 17:09 1748次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>开发板</b>所制作的简易示波器

    使用小开发板wifi进行tcp通信的步骤

    开发过程中想要与开发板进行通信一般使用串口通信,当开发板使用串口与pc
    的头像 发表于 05-16 09:35 2202次阅读

    用小开发板wifi进行udp通信的教程

    显示,这些消息是不断被覆盖的,使用udp就高效的多。   一、在使用小开发板wifi进行udp通信
    的头像 发表于 05-31 16:43 3332次阅读
    用小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>开发板</b><b class='flag-5'>wifi</b><b class='flag-5'>进行</b>udp<b class='flag-5'>通信</b>的教程

    基于小RK2206开发板wifi-udp通信实验

    显示,这些消息是不断被覆盖的,使用udp就高效的多。一、在使用小开发板wifi进行udp通信
    的头像 发表于 06-01 10:33 817次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>开发板</b><b class='flag-5'>wifi</b>-udp<b class='flag-5'>通信</b>实验

    基于小RK2206开发板wifi-tcp通信实验

    基于小RK2206开发板wifi-tcp通信实验在开发过程中想要与
    的头像 发表于 06-14 11:10 1232次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>开发板</b><b class='flag-5'>wifi-tcp</b><b class='flag-5'>通信</b>实验

    基于OpenHarmony轻量级操作系统实现RK2206 WiFi-AP模式通信开发案例

    实验内容本示例将演示如何在小-RK2206开发板上使用WiFi-AP模式(即将RK2206作为WiFi路由器),实现与PC端
    的头像 发表于 08-08 08:23 355次阅读
    基于OpenHarmony轻量级操作系统实现RK2206 <b class='flag-5'>WiFi</b>-AP模式<b class='flag-5'>通信</b><b class='flag-5'>开发</b>案例

    基于ALINX开发板Z19-P实现WIFI无线通信功能

    本教程基于 ALINX 开发板 Z19-P , 实现 WIFI 无线通信功能WIFI 模块使用 USB WIFIrtl8188cu。
    的头像 发表于 11-11 10:44 114次阅读
    基于ALINX<b class='flag-5'>开发板</b>Z19-P实现<b class='flag-5'>WIFI</b>无线<b class='flag-5'>通信</b><b class='flag-5'>功能</b>