谢谢chunyang大哥的指教,现在我把程序考入单片机,然后用单片机与TC35i模块相连接,测试单片机的串口有没有指令收发,若有的话,说明单片机能够与TC35I模块通信。可是结果并无OK返回,程序我是这样写的(主要是想测试单片机能够与模块通信,所以只写了AT联机指令)还望论坛里的各位大虾们一起探讨,指出错误与不足,共同提高进步啊~~谢谢大家了~~
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define Rsbuf_N 50
unsigned char Rsbuf[Rsbuf_N],k;
uchar code table[]="AT";
/*****************Init_UART串口初始化***************/
void Init_UART()
{
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
TR1=1; //定时器1运行控制位
SCON=0x50; //UART(串口)方式1:8位UART;REN=1:允许接收
PCON=0x00; //SMOD=0:设置波特率不加倍
EA=1;
// ES=1;
}
/**************SendASC 发送一个ASC*****************/
void SendASC(uchar ch)
{
ES=0;
TI=0; //clear send flag 清除发送标志TI1
SBUF=ch; //送入缓冲区
while(!TI); //TI发送中断标志位;等待数据发送完毕
TI=0; //软件清零
ES=1;
}
/**************SendStr 发送字符串*******************/
void SendStr(uchar *str,uint len)
{
while(len--)
{
SendASC(*str++);
}
}
void main()
{
Init_UART();
SendStr(table,2);
SendASC(0x0D);
SendASC(0x0A);
// ES=1;
while(1);
}
void gsm() interrupt 4
{
EA=0; //关中断,防止其他中断打扰
RI=0;
Rsbuf[k++]=SBUF;
if(k>1)
k=0;
EA=1;
}
|