全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版

AVR单片机向GPRS模块发送AT指令

[复制链接]
1569 0

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x

#include </io.h>
#include </iom128.h>
#include<stdlib.h>
#include<string.h>

#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

#define clc 7372800
#define baud 9600
#define baud_setting   (uint)((ulong)clc/(16*(ulong)baud)-1)  //波特率计算公式
#define baud_h         (uchar)(baud_setting>>8)                 //提取高位
#define baud_l         (uchar)(baud_setting)                    //低位

void usart_init(void)
{
UCSR0A=0x00;                                 //单倍速模式
UCSR0B=0xF8;                                 //接收中断和发送中断允许                              
UCSR0C=(1<<UCSZ01)|(1<<UCSZ00);              //写UCSRC寄存器,异步通信无校验,8位数据1位停止位
UBRR0H=baud_h;                               //写波特率的值
UBRR0L=baud_l;
}

uchar get_char(void) //串口0接收字符
{
while(!(UCSR0A&(1<< RXC0)));
return UDR0;
}

void put_char(char c) //串口0发送字符
{
while(!(UCSR0A&(1<< UDRE0)));
UDR0=c;
}


void put_s(char *s)
{
while (*s)
{
  put_char(*s);
  s++;
}
//put_char(0x0a);//回车换行
put_char(0x0d);
}


char * AVR_usart_receives(uchar length)   
//接收长度为length的字符串并返回接收到的字符串

{
uchar i;     
char *string_temp;
    string_temp = (uchar *)malloc(length * sizeof(char));    //分配空间,并未初始化空间
         
    for(i = 0; i < length; i++)
     {
   string_temp[i] = get_char();
   if(i == length-1)
    string_temp[length] = "\0";  
   
  }
         
         return string_temp;   //用于返回接收到的字符串的指针
}

void IO_init()
{
    PORTE = 0xFF;                  //数据口为输出
    DDRE = 0xFF;
}

void main()
{
uchar data_recive;
char *r_string;
char *te = "OK";
uchar q;
IO_init();
usart_init();
while(strstr(r_string,te)==NULL)
{
  put_s("at");
  r_string = avr_usart_receives(2);
   if(strstr(r_string,te)!=NULL)
  {
   PORTE = 0x00;                  //若串口是接在单片机上,则PE口全部拉低
   put_s(r_string);                  //若串口是接在上位机,则在上位机(串口调试助手)上,显示出接收到的字符串
  }
}
  

}



举报

回复
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

打开支付宝扫一扫,最高立得1212元红包
搜索

图文热点

更多

社区学堂

更多

客服中心

QQ:187196467 服务时间:周一至周日 8:30-20:30

关注我们

关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表