亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
程序編譯錯誤 stc15單片機關于sim800c gsm模塊的控制代碼
[打印本頁]
作者:
a60483882
時間:
2019-4-25 16:43
標題:
程序編譯錯誤 stc15單片機關于sim800c gsm模塊的控制代碼
基于stc15的GSM模塊,接收短信來控制你想控制的的東西
單片機源程序如下:
#include "stc15.h"
#include "delay.h"
#include "main.h"
#include "uart2.h"
#define Success 1U
#define Failure 0U
//定義變量
unsigned long Time_Cont = 0; //定時器計數器
char phoneNumber[] = "xxxxxxxxxx"; //替換成需要被撥打電話的號碼
char msg[] = "xxxxxxxxxxx"; //短信內容
char xdata messageBuffer2[100];
//bit isTimeOut2 = 0;
#define MAIN_Fosc 22118400L
#define u16 unsigned int
void delay2_ms(unsigned int ms)
{
u16 i;
do{
i = (u16)(MAIN_Fosc / 13000);
while(--i) ; //14T per loop
}while(--ms);
}
void main()
{
Uart_Init2();
if (sendCommand2("AT\r\n", "OK\r\n", 3000, 10) == Success);
else errorLog2();
delay2_ms(10);
if (sendCommand2("AT+CMGF=1\r\n", "OK\r\n", 1000, 10) == Success);
else errorLog2();
delay2_ms(10);
if (sendCommand2("AT+CSCS=\"GSM\"\r\n", "OK\r\n", 1000, 10) == Success);
else errorLog2();
delay2_ms(10);
if (sendCommand2("AT+CNMI=2,2\r\n", "OK\r\n", 3000, 10) == Success);
else errorLog2();
delay2_ms(10);
// sendMessage(phoneNumber,msg); //發送短信
while(1)
{
if(isStartGetMessage2)
{
isStartGetMessage2 = 0;
Time_Cont = 0;
while (Time_Cont < 1000) //等待1s接收短信數據
{
delay2_ms(100);
Time_Cont += 100;
}
isGetMessage2 = Success;
}
if( isGetMessage2 == Success)
{
parseMessage2();
if(strstr(messageBuffer2, "reboot conditioner") != NULL || strstr(messageBuffer2, "5F00542F7A7A8C03") != NULL) //55F00 542F 7A7A 8C03 //開啟空調
{
// relay2 = 1;
//這里嵌入信息
}
if(strstr(messageBuffer2, "Turn off conditioner") != NULL || strstr(messageBuffer2, "517395ED7A7A8C03") != NULL) //5173 95ED 7A7A 8C03 //關閉空調
{
// relay1 = 0;
//這里也是嵌入信息
}
isGetMessage2 = Failure ;
}
}
}
void parseMessage()
{
char *messageHead=NULL;
char *messageEnd1=NULL;
char *messageEnd2=NULL;
memset(messageBuffer2, 0, sizeof(messageBuffer2)-1); //清空短信內容緩沖區
messageHead = strstr(Rec_Buf2, "CMT");
if (messageHead != NULL)
{
messageEnd1 = strstr(messageHead, "\n");
if (messageEnd1 != NULL)
{
messageEnd1 ++;
messageEnd2 = strstr(messageEnd1, "\n");
if (messageEnd2 != NULL)
{
memcpy(messageBuffer2, messageEnd1, messageEnd2 - messageEnd1);
}
}
}
CLR_Buf2();
}
void sendMessage(char *number,char *msg)
{
xdata char send_buf[20] = {0};
memset(send_buf, 0, 20); //清空
strcpy(send_buf, "AT+CMGS=\"");
strcat(send_buf, number);
strcat(send_buf, "\"\r\n");
if (sendCommand2(send_buf, ">", 3000, 10) == Success);
else errorLog2();
SendString2(msg);
SendData2(0x1A);
}
void phone(char *number)
{
char send_buf[20] = {0};
memset(send_buf, 0, 20); //清空
strcpy(send_buf, "ATD");
strcat(send_buf, number);
strcat(send_buf, ";\r\n");
if (sendCommand2(send_buf, "SOUNDER", 10000, 10) == Success);
else errorLog2();
}
void errorLog()
{
while (1)
{
if (sendCommand2("AT\r\n", "OK", 100, 10) == Success)
{
soft_reset2();
}
delay2_ms(200);
}
}
void soft_reset(void) //制造重啟命令
{
((void (code *) (void)) 0x0000) ();
}
unsigned int sendCommand(char *Command, char *Response, unsigned long Timeout, unsigned char Retry)
{
unsigned char n;
CLR_Buf2();
for (n = 0; n < Retry; n++)
{
SendString2(Command); //發送GPRS指令
Time_Cont = 0;
while (Time_Cont < Timeout)
{
delay2_ms(100);
Time_Cont += 100;
if (strstr(Rec_Buf2, Response) != NULL)
{
CLR_Buf2();
return Success;
}
}
Time_Cont = 0;
}
CLR_Buf2();
return Failure;
}
復制代碼
#include "stc15.h"
#include "delay.h"
#include "sim800c.h"
#include "uart2.h"
#define Success 1U
#define Failure 0U
//定義變量
unsigned long Time_Cont = 0; //定時器計數器
char phoneNumber[] = "xxxxxxxxxx"; //替換成需要被撥打電話的號碼
char msg[] = "xxxxxxxxxxx"; //短信內容
char xdata messageBuffer2[100];
//bit isTimeOut2 = 0;
#define MAIN_Fosc 22118400L
#define u16 unsigned int
void delay2_ms(unsigned int ms)
{
u16 i;
do{
i = (u16)(MAIN_Fosc / 13000);
while(--i) ; //14T per loop
}while(--ms);
}
void sim800c()
{
Uart_Init2();
if (sendCommand2("AT\r\n", "OK\r\n", 3000, 10) == Success);
else errorLog2();
delay2_ms(10);
if (sendCommand2("AT+CMGF=1\r\n", "OK\r\n", 1000, 10) == Success);
else errorLog2();
delay2_ms(10);
if (sendCommand2("AT+CSCS=\"GSM\"\r\n", "OK\r\n", 1000, 10) == Success);
else errorLog2();
delay2_ms(10);
if (sendCommand2("AT+CNMI=2,2\r\n", "OK\r\n", 3000, 10) == Success);
else errorLog2();
delay2_ms(10);
// sendMessage(phoneNumber,msg); //發送短信
if(isStartGetMessage2)
{
isStartGetMessage2 = 0;
Time_Cont = 0;
while (Time_Cont < 1000) //等待1s接收短信數據
{
delay2_ms(100);
Time_Cont += 100;
}
isGetMessage2 = Success;
}
if( isGetMessage2 == Success)
{
parseMessage2();
if(strstr(messageBuffer2, "reboot conditioner") != NULL || strstr(messageBuffer2, "5F00542F7A7A8C03") != NULL) //55F00 542F 7A7A 8C03 //開啟空調
{
// relay2 = 1;
//這里嵌入信息
}
if(strstr(messageBuffer2, "Turn off conditioner") != NULL || strstr(messageBuffer2, "517395ED7A7A8C03") != NULL) //5173 95ED 7A7A 8C03 //關閉空調
{
// relay1 = 0;
//這里也是嵌入信息
}
isGetMessage2 = Failure ;
}
}
void parseMessage()
{
char *messageHead=NULL;
char *messageEnd1=NULL;
char *messageEnd2=NULL;
memset(messageBuffer2, 0, sizeof(messageBuffer2)-1); //清空短信內容緩沖區
messageHead = strstr(Rec_Buf2, "CMT");
if (messageHead != NULL)
{
messageEnd1 = strstr(messageHead, "\n");
if (messageEnd1 != NULL)
{
messageEnd1 ++;
messageEnd2 = strstr(messageEnd1, "\n");
if (messageEnd2 != NULL)
{
memcpy(messageBuffer2, messageEnd1, messageEnd2 - messageEnd1);
}
}
}
CLR_Buf2();
}
void sendMessage(char *number,char *msg)
{
xdata char send_buf[20] = {0};
memset(send_buf, 0, 20); //清空
strcpy(send_buf, "AT+CMGS=\"");
strcat(send_buf, number);
strcat(send_buf, "\"\r\n");
if (sendCommand2(send_buf, ">", 3000, 10) == Success);
else errorLog2();
SendString2(msg);
SendData2(0x1A);
}
void phone(char *number)
{
char send_buf[20] = {0};
memset(send_buf, 0, 20); //清空
strcpy(send_buf, "ATD");
strcat(send_buf, number);
strcat(send_buf, ";\r\n");
if (sendCommand2(send_buf, "SOUNDER", 10000, 10) == Success);
else errorLog2();
}
void errorLog()
{
while (1)
{
if (sendCommand2("AT\r\n", "OK", 100, 10) == Success)
{
soft_reset2();
}
delay2_ms(200);
}
}
void soft_reset(void) //制造重啟命令
{
((void (code *) (void)) 0x0000) ();
}
unsigned int sendCommand(char *Command, char *Response, unsigned long Timeout, unsigned char Retry)
{
unsigned char n;
CLR_Buf2();
for (n = 0; n < Retry; n++)
{
SendString2(Command); //發送GPRS指令
Time_Cont = 0;
while (Time_Cont < Timeout)
{
delay2_ms(100);
Time_Cont += 100;
if (strstr(Rec_Buf2, Response) != NULL)
{
CLR_Buf2();
return Success;
}
}
Time_Cont = 0;
}
CLR_Buf2();
return Failure;
}
復制代碼
程序編譯錯誤 如何修改 求大神:
總控制結合備份部.rar
(57.78 KB, 下載次數: 113)
2019-4-25 16:42 上傳
點擊文件名下載附件
作者:
dragonlt
時間:
2019-4-25 21:51
謝謝分享!
作者:
shwghsy
時間:
2019-5-3 09:07
這個函數有點不明白
void parseMessage()
{
char *messageHead=NULL;
char *messageEnd1=NULL;
char *messageEnd2=NULL;
下面的有點看不明白,誰能給解釋一下,謝謝!
memset(messageBuffer2, 0, sizeof(messageBuffer2)-1); //清空短信內容緩沖區
messageHead = strstr(Rec_Buf2, "CMT");
if (messageHead != NULL)
{
messageEnd1 = strstr(messageHead, "\n");
if (messageEnd1 != NULL)
{
messageEnd1 ++;
messageEnd2 = strstr(messageEnd1, "\n");
if (messageEnd2 != NULL)
{
memcpy(messageBuffer2, messageEnd1, messageEnd2 - messageEnd1);
}
}
}
CLR_Buf2();
}
作者:
dzbj
時間:
2019-5-3 11:14
感謝樓主分享 太及時了 手里的SIM800模塊還沒弄呢 有樓主的程序少走很多彎路啊
作者:
228298253
時間:
2019-5-5 19:02
贊!!!感謝樓主分享
作者:
lvpeng7446281
時間:
2020-1-12 22:46
編譯不能成功
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1