你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

简单的状态机框架,让所有人快玩转WIFI以及GPRS模块  

[复制链接]
技术范儿 发布时间:2016-11-21 13:40
阅读主题, 点击返回1楼
收藏 3 评论23 发布时间:2016-11-21 13:40
23个回答
scx111 回答时间:2017-3-2 16:44:54
谢谢分享
zbber 回答时间:2017-3-2 20:46:10
谢谢分享,谢谢楼主,支持分享
yoghen 回答时间:2017-7-27 11:19:14
AT 指令不使用状态机,则同时处理的功能就比较单一。使用状态机,我又头大。谢谢分享
me浩 回答时间:2017-7-27 11:47:56

谢谢分享
shentouzhiwang 回答时间:2017-9-22 20:32:45
感谢,这个状态机我看懂了,非常的全面。
epochal 回答时间:2017-9-22 22:00:55
好东西!谢谢分享!
shentouzhiwang 回答时间:2017-9-22 22:35:11
void ESP8266HalRevData(uint8_t inPut)
{
      
        if(ESP8266Step.Step < IDLE)
        {
                ESP8266Step.ReveBuff[ESP8266Step.HalRevSize++] = inPut;
        if(ESP8266Step.HalRevSize == MAXREVESIZE)
        {
            memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);
            ESP8266Step.HalRevSize = 0;
        }
        }
        else if(ESP8266Step.Step >= IDLE)
        {
        TCPTransmission.TcpRxBuff[TCPTransmission.TcpRxSize++] = inPut;


            TCPTransmission.TcpRevTime = GetTime();
        TCPTransmission.RevFlag = 0xff;
        }
               
}
//接收数量没做限制,有数组越界风险。
//增加限制及处理
新代码如下
void ESP8266HalRevData(uint8_t inPut)
{
      
        if(ESP8266Step.Step < IDLE)
        {
                ESP8266Step.ReveBuff[ESP8266Step.HalRevSize++] = inPut;
        if(ESP8266Step.HalRevSize == MAXREVESIZE)
        {
            memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);
            ESP8266Step.HalRevSize = 0;
        }
        }
        else if(ESP8266Step.Step >= IDLE)
        {
        TCPTransmission.TcpRxBuff[TCPTransmission.TcpRxSize++] = inPut;
                    if(TCPTransmission.TcpRxSize >= MAXREVESIZE)
        {
            memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);
            TCPTransmission.TcpRxSize = 0;
                                          TCPTransmission.RevFlag = 0;
        }
                                else
                                {
                                        TCPTransmission.TcpRevTime = GetTime();
          TCPTransmission.RevFlag = 0xff;
                                }             
        }               
}

欢迎批评指正

dataozi 回答时间:2017-10-18 13:35:33
谢谢分享的
710184559 回答时间:2018-5-11 19:32:30
非常感谢,正需要做GPRS这块
zsaniu 回答时间:2018-8-30 17:02:25
谢谢分享,正好项目用到esp8266模块,可以参考一下流程

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版