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);
详细代码如下: