找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1117|回复: 12
收起左侧

GSM模块一直发送信息,没加循环?

[复制链接]
ID:985137 发表于 2022-4-28 21:27 | 显示全部楼层 |阅读模式
#include "reg51.h"
#include "intrins.h"
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "absacc.h"
#define uint unsigned int
#define uchar unsigned char

uchar code SMS_send[]="AT+CMGS=";
uchar code SMS_send_AT[]="AT";
uchar code GMS[]="AT+CMGF=1";
uchar code SMS_PDU[]="AT+CSQ";
uchar Byte_num[]="\"+86**************\"";
uchar code Sms2_Pdu[]="warning";
uchar date;


void delay2(uint n)          //延时
{
unsigned int  i,j;
for(i=0;i<n;i++);
for(j=0;j<123;j++);
}

void Print_Char(uchar dat)         //发送一个字符
{
ES = 0;
TI=0;
SBUF = dat;
while(!TI);
TI = 0;
ES = 1;
}

void Print_Str(uchar *str)  //一个字节
{
  while(*str!='\0')
  {
   Print_Char(*str++);   
  }
}


void Ini_UART()              //初始化 设置波特率9600
{
PCON&=0x00;
SCON=0x50;
TMOD=0x20;
TL1=0xfd;  
TH1=0xfd;
TF1=1;
ET0=1;
TR1=1;
ES=1;
EA=1;
}

void GSM_PDU()
{
        
        Print_Str(SMS_send_AT);
        Print_Str("\r\n");
        delay2(5000);delay2(5000);delay2(5000);delay2(5000);delay2(5000);
        Print_Str(SMS_PDU);
        Print_Str("\r\n");
        delay2(1000);delay2(5000);delay2(5000);delay2(5000);delay2(5000);delay2(5000);delay2(5000);
        Print_Str(GMS);                                                                                                                  
        Print_Str("\r\n");delay2(5000);delay2(5000);delay2(5000);delay2(5000);delay2(5000);
        ES=1;
        delay2(6000);
}

void GSM_PDU_SMS()
{
        Print_Str(SMS_send);
        Print_Str(Byte_num);
        Print_Str("\r\n");
        delay2(900);
        delay2(5000);delay2(5000);delay2(5000);delay2(5000);delay2(5000);
        Print_Str(Sms2_Pdu);
        delay2(500);delay2(5000);delay2(5000);delay2(5000);delay2(5000);
        Print_Char(0x1a);
        delay2(5000);
        delay2(5000);
        Print_Str("\r\n");
}

void main()
{
        Ini_UART();
        GSM_PDU();
        GSM_PDU_SMS();
}
void inter() interrupt 4
{

        date = SBUF;
        if(RI)
        RI = 0;

}

回复

使用道具 举报

ID:688692 发表于 2022-4-28 23:41 | 显示全部楼层
没加循环,程序指针跑到FFFF之后溢出为0000又回到开始了。

AT指令你这只有发出AT指令没管有没有返回,这也能发得出短信都是很给面子了。
回复

使用道具 举报

ID:985137 发表于 2022-4-29 08:52 来自手机 | 显示全部楼层
cnos 发表于 2022-4-28 23:41
没加循环,程序指针跑到FFFF之后溢出为0000又回到开始了。

AT指令你这只有发出AT指令没管有没有返回,这 ...

加什么,能停吗,我就只需要发一次就行
回复

使用道具 举报

ID:879348 发表于 2022-4-29 09:23 | 显示全部楼层
参考下别人的程序基本框架吧
回复

使用道具 举报

ID:985137 发表于 2022-4-29 10:19 来自手机 | 显示全部楼层
wufa1986 发表于 2022-4-29 09:23
参考下别人的程序基本框架吧

我不会看程序,这是网上找的,但就是一直发,不知道为啥不停
回复

使用道具 举报

ID:277550 发表于 2022-4-29 13:18 | 显示全部楼层
2248373991 发表于 2022-4-29 10:19
我不会看程序,这是网上找的,但就是一直发,不知道为啥不停

测试的程序,
回复

使用道具 举报

ID:985137 发表于 2022-4-29 13:54 来自手机 | 显示全部楼层
devcang 发表于 2022-4-29 13:18
测试的程序,

什么意思啊?
回复

使用道具 举报

ID:161164 发表于 2022-4-29 14:38 | 显示全部楼层

void main()
{
        Ini_UART();
        GSM_PDU();
        GSM_PDU_SMS();
while(1);
}
回复

使用道具 举报

ID:985137 发表于 2022-4-29 20:00 | 显示全部楼层
lkc8210 发表于 2022-4-29 14:38
void main()
{
        Ini_UART();

加了这个就不发了
回复

使用道具 举报

ID:985137 发表于 2022-4-29 20:10 | 显示全部楼层
lkc8210 发表于 2022-4-29 14:38
void main()
{
        Ini_UART();

我加了个0x1a呀,哪里循环了??
回复

使用道具 举报

ID:883242 发表于 2022-4-29 20:47 | 显示全部楼层
2248373991 发表于 2022-4-29 20:00
加了这个就不发了

一直不停的发你不满意,只发一次你也不满意,到底怎么样你才满意?
回复

使用道具 举报

ID:985137 发表于 2022-4-29 20:59 | 显示全部楼层
Hephaestus 发表于 2022-4-29 20:47
一直不停的发你不满意,只发一次你也不满意,到底怎么样你才满意?

加了这个一次都不发了,我就只想发一次
回复

使用道具 举报

ID:985137 发表于 2022-4-30 20:10 来自手机 | 显示全部楼层
lkc8210 发表于 2022-4-29 14:38
void main()
{
        Ini_UART();

这个能改成按钮控制吗,按一下发一个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表