MSP430单片机可以控制GPRS模块给手机发短信,那么具有GPRS功能的手机能发短信给与单片机相连的GPRS模块吗

MSP430单片机可以控制GPRS模块给手机发短信,那么具有GPRS功能的手机能发短信给与单片机相连的GPRS模块吗,第1张

当然可以了

GPRS模块通过串口将数据交给单片机,数据格式视不同的厂家的GPRS模块而定,

那么单片机如何读取GPRS模块的短信呢?

1可以通过AT指令设置GPRS模块,让GPRS模块收到短信后立即将短信内容交给单片机,也可以通过AT指令设置GPRS模块,收到短信后先存到SIM(SM)卡或模块(ME),然后单片机发AT指令向GPRS模块读取短信内容

2如何解析短信?

先把模块接到PC,用串口软件看下短信内容格式,然后编程去进行AT *** 作,短信字符集可选择UCS2或GSM,国内部分老旧手机不支持GSM字符集,建议解析UCS2字符集!

你串口怎么接的? 如果是并在单片机与GPRS模块直接的话,电脑的串口应该只能手动模块回传的信息,收不到单片机的。因为RX TX 反接要!乱码可能是波特率问题!你先用电脑去收你单片机发过来的数据,看看AT指令对不对。 给你我的程序参考下,调试通过的额

/

/

//#include "stc15h" //包含STC15单片机寄存器定义文件

#include "STC15F2Kh"

//#include "LCD12864H"

#include <intrinsH>

typedef unsigned char unint8;

typedef unsigned char unint16;

#ifndef uchar

#define uchar unsigned char

#endif

#ifndef uint

#define uint unsigned int

#endif

#define SEND "AT+CMGS=\"电话号码\"\r\n"

unsigned char qwh;

sbit buzzer = P0^6;

sbit relay = P0^4;

sbit key=P3^2;

void delay(uchar t,uchar y)

{

uint i,j;

for(i=0;i<y;i++)

for(j=0;j<t;j++);

}

void InitUART(void)

{ //9600bps@110592MHz

PCON &= 0x7F; //波特率不倍速

SCON = 0x50; //8位数据,可变波特率

AUXR |= 0x40; //定时器1时钟为Fosc,即1T

AUXR &= 0xFE; //串口1选择定时器1为波特率发生器

TMOD &= 0x0F; //清除定时器1模式位

TMOD |= 0x20; //设定定时器1为8位自动重装方式

TL1 = 0xDC; //设定定时初值

TH1 = 0xDC; //设定定时器重装值

ET1 = 0; //禁止定时器1中断

TR1 = 1;

ES = 1; //使能串口中断

EA = 1;

}

void SendData(uchar dat)

{

//while (busy_ck); //等待前面的数据发送完成

//busy_ck = 1;

SBUF = dat; //写数据到UART数据寄存器

while(TI==0);

TI=0;

}

/----------------------------

发送字符串

----------------------------/

void SendString(uchar s)

{

while (s) //检测字符串结束标志

{

SendData(s++); //发送当前字符

}

}

//

void fs(void)

{

int i;

SendString("AT+CMGF=1\r\n"); //m模式设置

for(i=0;i<50;i++)

delay(8888,8888);

SendString(SEND); //电话号码 在顶部定义的

for(i=0;i<50;i++)

delay(8888,88888);

SendString("Warning! Someone broke into the house!\r\n"); //短信内容

for(i=0;i<50;i++)

delay(8888,8888);

SendData(0x1a); //结束符

}

void main(void)

{

int flage=0,i=0,j=0;

InitUART();

while(1)

{

relay = 0;

P2 = 0xA0;

P2 = 0x00;

if(key==1&&flage==0)

{

//P1=0XFF;

relay = 1;

P2 = 0xA0;

P2 = 0x00;

fs();

flage=1;

}

if(flage==1)

{

P1=0XFF;

}

delay(8888,8888);

i++;

if(i>=500)

{

flage=0;

i=0;

}

}

}

void Uart_Isr() interrupt 4 using 1

{

if (RI)

{

RI = 0; //Clear receive interrupt flag

//a[pi]= SBUF; //P0 show UART data

}

if (TI)

{

TI = 0; //Clear transmit interrupt flag

}

// pi++;

}

你要使用

AT+CMGS

Send SMS message(发送短消息)

这条发短消息命令即可,

接口使用232;

具体的要看你选的GPRS DTU模块通信协议,建议买个封装好,

你好,GPRS模块通常是用AT命令控制的,可以用单片机的串口(USART)向GPRS模块发送相应的命令,实现与手机的通信。比如说向GPRS模块发送拨打电话的AT命令,即可实现电话预警,类似的还有短信控制,蓝牙通信,这些都可以实现模块与手机通信。

我现在也在做GPRS模块通信,使用的是飞思创电子的SIM800C评估板,实现与服务器的TCP通信,已经调通了。有兴趣的话,欢迎一起学习交流

以上就是关于MSP430单片机可以控制GPRS模块给手机发短信,那么具有GPRS功能的手机能发短信给与单片机相连的GPRS模块吗全部的内容,包括:MSP430单片机可以控制GPRS模块给手机发短信,那么具有GPRS功能的手机能发短信给与单片机相连的GPRS模块吗、用GPRS模块和51单片机进行通信时的问题、我要做基于GPRS的远程温度检测系统,现在已经测出了温度,求单片机控制GPRS模块的方法,我知道用AT指令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9444374.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存