zoukankan      html  css  js  c++  java
  • STM32F103和SIM800L打造低成本短信转发系统(五):控制程序

    本文主要介绍单片机的控制程序。

    控制程序中主要分为这几个函数:

    1.串口中断回调函数,当发生串口中断事件时,会调用此函数。

    void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);
    

    2.发送AT控制命令到sim800l模块。

    int8_t SendAtCmd(const char *cmd, const char *ack, int16_t timeout)
    

    3.sim800l初始化函数,主要是单片机和sim800l建立连接、检查SIM卡状态、检查信号强度、检查网络注册情况、设置短信工作在文本模式和保存设置参数等。

    int8_t GsmInit(void);
    

    4.GPRS初始化函数,主要在联网前配置承载场景、激活GPRS上下文。

    int8_t GprsInit(void);
    

    5.GPRS去初始化函数,主要在数据传输完成后关闭GPRS上下文。

    int8_t GprsEnd(void);
    

    6.HTTP初始化函数,主要是初始化HTTP服务、设置会话参数和设置上传数据类型为key=value形式。

    int8_t HttpInit(void);
    

    7.HTTP发送函数,主要是访问网页和发送数据。

    int8_t HttpSend(void);
    

    8.HTTP结束函数,主要是在数据发送完成后结束HTTP服务。

    int8_t HttpEnd(void);
    

    9.发件人URL编码,主要是删除发件人前缀"+"号,如不删除需要进行URL编码,否则数据提交会出错。

    void OaUrlDecode(void);
    

    10.短信时间URL编码,具体可以看前面发布的这篇文章

    void SctsUrlDecode(void);

    11.读短信函数,主要检查当前SIM卡短信存量,并读取一条短信至内存中。还会把短信内容发至串口1

    int8_t ReadSms(void);
    

    12.删除短信函数,主要是在短信提交至服务器后删除SIM卡中储存的短信。

    int8_t DeleteSms(void);
    

      

    详细代码如下:

  • 相关阅读:
    LUA表的引用理解
    UNITY 打包安卓APK
    UNITY打包问题
    U3D 打包时找不到tag的问题
    break prefab instance的原理
    C#调用LUA函数
    LUA 利用#遍历表的问题
    U3D笔记11:47 2016/11/30-15:15 2016/12/19
    Unity3D 预设打包的注意事项
    回调 和 覆盖
  • 原文地址:https://www.cnblogs.com/1x11/p/12595738.html
Copyright © 2011-2022 走看看