用代码实现SIM800C如何把从STM32F103C8T6接收到的GPS定位发送给用户手机
时间: 2024-02-16 07:02:14 浏览: 95
STM32F103C8T6控制SIM800L通过短信发送GPS模块返回的经纬度信息(完整源码)-87.zip
以下是使用STM32F103C8T6和SIM800C模块实现把从GPS模块接收到的GPS定位发送给用户手机的示例代码:
```c++
#include <SoftwareSerial.h>
//定义软串口
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
//初始化串口和SIM800C模块
Serial.begin(9600);
mySerial.begin(9600);
delay(2000);
//设置SIM800C模块的GPS功能
mySerial.println("AT+CGPSPWR=1"); //打开GPS电源
delay(1000);
mySerial.println("AT+CGPSRST=0"); //重置GPS模块
delay(1000);
mySerial.println("AT+CGPSINF=0"); //打开GPS信息输出
delay(1000);
}
void loop() {
//读取GPS定位信息
String gpsData = ""; //保存GPS定位信息
while(Serial.available()) {
gpsData += String(Serial.read());
}
if(gpsData.length() > 0) {
String smsData = "GPS:" + gpsData; //封装短信数据
mySerial.println("AT+CMGF=1"); //设置短信格式为文本模式
delay(1000);
mySerial.println("AT+CMGS=\"+86136xxxxxxxx\""); //用户手机的手机号码
delay(1000);
mySerial.println(smsData); //发送短信数据
delay(1000);
mySerial.write(26); //发送短信结束符
delay(1000);
}
delay(5000); //延时5秒后再次读取GPS定位信息
}
```
以上代码中,我们使用SoftwareSerial库来实现软串口通信,其中mySerial对象连接SIM800C模块,Serial对象连接STM32F103C8T6的硬串口。在setup()函数中,我们先初始化串口和SIM800C模块,并设置SIM800C的GPS功能。在loop()函数中,我们使用STM32F103C8T6的串口从GPS模块读取GPS定位信息,并通过AT指令AT+CMGS将GPS定位信息封装成短信数据发送到用户手机上。需要根据实际情况修改代码中的手机号码和其他参数。
阅读全文