干货 | 小玩 Cyclone TCP

干货 | 小玩 Cyclone TCP

EEWORLD

电子资讯 犀利解读 

技术干货 每日更新

干货 | 小玩 Cyclone TCP
 干货 | 小玩 Cyclone TCP



对于socket编程,如果自己讲一大堆,会变得班门弄斧。所以还是直接进入重点好了。本来就想着在单片机跑下lwip,后来free叔叔介绍推荐了cyclonetcp,我个人觉得很好用,用起来很顺手,而且代码注释等也很简洁。



简单说下CycloneTCP,包括了TCP和SSL两部分,我主要用的是TCP部分,所以SSL部分也没仔细去看。从网络接口层上看,支持了eth、wifi、usb等常用的接口,从应用层上看,支持了16种应用层协议。对于单片机来说,已经足够很强大了。

干货 | 小玩 Cyclone TCP

我并没有切入到应用层上,而是在传输层上入手,因为自己项目上,用的tcp client和server比较多,所以同样在cyclontcp,我也是先试下tcp client的搭建。硬件平台是F746disco。



从底层开发上,搭建tcp client很简单,只需要调用几个socket接口即可通信。从官方的demo布局可以看到,每个demo都带了freertos,而且各个相关文件都已经给你分配好。



干货 | 小玩 Cyclone TCP

 



我在这个的基础上,建立了一些tcp client的Test任务。我在数据的收发上,自定义的自己的一个小协议。当收到帧头是7e的时候,长度一致,check么问题的时候,我就认为是一次有效数据。



干货 | 小玩 Cyclone TCP

 





开发板上的IP分配为静态IP,服务器地址是我的PC的IP地址。



干货 | 小玩 Cyclone TCP

 



接下来就是配置client端



干货 | 小玩 Cyclone TCP

 



然后在while里面不断等待收到数据,若收到一帧数据则进行处理。



干货 | 小玩 Cyclone TCP

 



以上的底层搭建已经完成。接下来就是server端。在PC上新建一个QT工程。在UI设计上简单布局几个控件。



干货 | 小玩 Cyclone TCP

 





当点击"打开连接"的时候,会轮询查询本机的IP地址并显示在ServerIP上,同时也侦听一个端口(我的是8001)使得开发板能够利用这个端口访问服务器。当服务器被客户端访问时,会发出newConnection()信号,因此为该信号添加槽函数acceptConnection()



干货 | 小玩 Cyclone TCP

 



连接成功后,每次点击相对应的控件都会使用Socket的write函数向客户端发送数据socket->write(data); 

比如点击发送字符串。则对应到相对应的声明函数里。



干货 | 小玩 Cyclone TCP

 



其他功能,比如收到开发板的相关数据进行处理显示等,后续如果有时间我会继续完善。代码比较简陋,就不敢上传了

干货 | 小玩 Cyclone TCP




但是可以肯定的是,cyclonetcp功能强大,注释也很好,很适合学习与项目应用。接下来就是点屏的时候了。



推荐阅读

干货 | 一文教你如何拯救“误入歧途”的陀螺仪!

干货 | 这才是PCB分层和堆叠的正确方法

干货 | 工程师必备硬件EMC设计规范

干货 | 纯电动汽车中的搭铁到底是怎么回事?

干货 | 资深工程师专业解读 ESD

干货 | 关于环路补偿,收藏这一篇就够了

干货 | 小谈bootloader和app两重升级

干货 | 教你理解尖峰电流与pcb布局时的去耦电容

干货 | 不轻易外传的EMC整改方法

干货 | 一文深入了解差动放大器

干货 | 教你用最少的IO口,扫最多的



干货 | 小玩 Cyclone TCP




以下微信公众号均属于

 

EEWorld(www.eeworld.com.cn)

欢迎长按二维码关注!

干货 | 小玩 Cyclone TCP

EEWorld订阅号:电子工程世界

干货 | 小玩 Cyclone TCP

EEWorld服务号:电子工程世界福利社