干货 | 小玩 Cyclone TCP
EEWORLD
电子资讯 犀利解读
技术干货 每日更新
对于socket编程,如果自己讲一大堆,会变得班门弄斧。所以还是直接进入重点好了。本来就想着在单片机跑下lwip,后来free叔叔介绍推荐了cyclonetcp,我个人觉得很好用,用起来很顺手,而且代码注释等也很简洁。
简单说下CycloneTCP,包括了TCP和SSL两部分,我主要用的是TCP部分,所以SSL部分也没仔细去看。从网络接口层上看,支持了eth、wifi、usb等常用的接口,从应用层上看,支持了16种应用层协议。对于单片机来说,已经足够很强大了。
我并没有切入到应用层上,而是在传输层上入手,因为自己项目上,用的tcp client和server比较多,所以同样在cyclontcp,我也是先试下tcp client的搭建。硬件平台是F746disco。
从底层开发上,搭建tcp client很简单,只需要调用几个socket接口即可通信。从官方的demo布局可以看到,每个demo都带了freertos,而且各个相关文件都已经给你分配好。
我在这个的基础上,建立了一些tcp client的Test任务。我在数据的收发上,自定义的自己的一个小协议。当收到帧头是7e的时候,长度一致,check么问题的时候,我就认为是一次有效数据。
开发板上的IP分配为静态IP,服务器地址是我的PC的IP地址。
接下来就是配置client端
然后在while里面不断等待收到数据,若收到一帧数据则进行处理。
以上的底层搭建已经完成。接下来就是server端。在PC上新建一个QT工程。在UI设计上简单布局几个控件。
当点击"打开连接"的时候,会轮询查询本机的IP地址并显示在ServerIP上,同时也侦听一个端口(我的是8001)使得开发板能够利用这个端口访问服务器。当服务器被客户端访问时,会发出newConnection()信号,因此为该信号添加槽函数acceptConnection()
连接成功后,每次点击相对应的控件都会使用Socket的write函数向客户端发送数据socket->write(data);
比如点击发送字符串。则对应到相对应的声明函数里。
其他功能,比如收到开发板的相关数据进行处理显示等,后续如果有时间我会继续完善。代码比较简陋,就不敢上传了
但是可以肯定的是,cyclonetcp功能强大,注释也很好,很适合学习与项目应用。接下来就是点屏的时候了。
推荐阅读
干货 | 一文教你如何拯救“误入歧途”的陀螺仪!
干货 | 这才是PCB分层和堆叠的正确方法
干货 | 工程师必备硬件EMC设计规范
干货 | 纯电动汽车中的搭铁到底是怎么回事?
干货 | 资深工程师专业解读 ESD
干货 | 关于环路补偿,收藏这一篇就够了
干货 | 小谈bootloader和app两重升级
干货 | 教你理解尖峰电流与pcb布局时的去耦电容
干货 | 不轻易外传的EMC整改方法
干货 | 一文深入了解差动放大器
干货 | 教你用最少的IO口,扫最多的
以下微信公众号均属于
EEWorld(www.eeworld.com.cn)
欢迎长按二维码关注!
EEWorld订阅号:电子工程世界
EEWorld服务号:电子工程世界福利社
- 干货---看完今天的走势再说吧(早盘必读)
- 华南营销精英召集!第三届广州4A干货大会来袭!
- 干货--关心自己该关心的事(早盘必读)
- 【干货】 矿山片区,晴隆菜场周边,老商机厂周边,自来水公司周
- 心血管系统高频考点50条,纯干货!
- 21岁女孩自杀式减肥,照片和减肥方式不忍直视,干货点评
- 走向滞胀,老百姓该怎么办?(纯干货)
- 华南营销精英召集!第三届广州4A干货大会来袭
- 干货---结构上今天还需冲高一下(早盘必读)
- 揭秘腾讯人力资源体系精髓(干货)
