我是靠谱客的博主 正直裙子,最近开发中收集的这篇文章主要介绍STM32通过4G模块实现TCP/UDP连接服务器STM单片机需要支持freeRTOS系统,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

STM32通过4G模块实现TCP/UDP连接服务器(附带源码)

  • STM单片机需要支持freeRTOS系统
    • TCP/UDP使用注意事项
    • 解决办法
    • 业务流程图
    • F412源码下载地址

STM单片机需要支持freeRTOS系统

4G模块收发是异步操作,在发送的时候很有可能也会收到数据,如果只是单线程的话很容易导致丢数据,开发虽然简单,但是不够严谨,这样需要协议来实现重发才能保证业务正常进展,此处我们选择了F412这款芯片跑freeRTOS系统,启用多线程,一个收一个发,模块选择了国仪海聚科技有限公司的GH201系列模块作为测试

TCP/UDP使用注意事项

简单的demo很容易,但是我们实际应用中设备往往是无人值守的,这就需要产品非常稳定,自我恢复能力很强,下面介绍在使用通信模块过程中可能出现的异常:

  1. 网络异常,网络节点异常断电,底层链路极端环境未恢复
  2. 伪基站的干扰,注册失败
  3. 模块异常,导致网络假死

解决办法

针对上述异常情况,我们首先要考虑的是心跳,虽然tcp协议中底层是有心跳保证的,但是网络的复杂性,以及网络设备的兼容性,或多或少的存在一些问题,将自己产品的稳定性寄托在底层的链路上是不妥的
心跳
上层应用连接成功之后需要跟服务器保证间隔2min左右的心跳探测(此心跳时间可以设置更短,不宜太长)
模块设备异常恢复
防止4G模块设备在一些未知情况可能出现网络异常,网络假死,AT指令不通,此时需要对模块重新上电强制恢复工作
单片机异常恢复
防止单片机因为一些未知因素导致的死机而无法工作

业务流程图

Created with Raphaël 2.2.0 上电 每秒发送AT等待响应OK(超时60S) 返回OK 检测sim卡是否在位,AT+CPIN? sim ready 检测网络是否注册成功(1s一次120次),AT+COPS? 返回运营商信息 激活PDP 返回OK 创建socket,AT+GSOCR 创建成功 发送数据,AT+GSOST(如果是TCP需要收到^GSOCK: CONNECTED,才能发送数据,收到^GSOCK: DISCONNECTED表示连接断开) 跟服务器进行业务交互(以及心跳保护) yes no yes no yes no yes no yes no

F412源码下载地址

测试代码仅仅是简单的发送了一串测试字符,其他功能有待开发
在这里插入图片描述在这里插入图片描述
链接: https://pan.baidu.com/s/1pb1A6RvOURrg8_bcKLH_Og 提取码: z2r2

最后

以上就是正直裙子为你收集整理的STM32通过4G模块实现TCP/UDP连接服务器STM单片机需要支持freeRTOS系统的全部内容,希望文章能够帮你解决STM32通过4G模块实现TCP/UDP连接服务器STM单片机需要支持freeRTOS系统所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部