|
各位大侠,我使用了一个模块,我想用单片机对其进行操作,只要单片机发送UG1#,模块自动返回余下所有的内容,我编了一下程序,但是模块感觉什么都没有返回?模块返回的也是UG1#,正常来说是UG#等一系列的数据。我贴下我的程序,看看有哪些地方有问题,谢谢各位了!前面的种类函数的声明和库函数的声明就不用写了。
void main(void)
{
uchar temp = 1;
initUart();
while(1)
{
send();
delayms(1500);
sendbs();
delayms(1000);
santdata(" ");
delayms(2000);
}
}
void send(void)
{
sendH(0x85);sendH(0x71);sendH(0x01);sendH(0x23);
}
void delayNOP(uint z)
{
for(;z>0;z--)
_nop_ ();
}
void delayms(uint z) // 1ms 延时 12 mHz
{
uint x,y;
for (x=z;x>0;x--)
for(y=110;y>0;y--);
}
void initUart(void) // 串口初始化
{
TMOD=0x20; // 开定时器1
PCON=0X80; // 波特率加倍
TH1=0xFF; // 设置波特率 115200
TL1=0xFF;
SCON=0X50; // 串口方式一 并允许接受
TR1=1;
EA=1 ;
ES=0; //关串口中断
}
void sendH(char dat)
{
delayNOP(15);
SBUF = dat;
}
void getdata(void) interrupt 4 // 串口中断
{
tt = 4550 ;
IE = 0 ; //关闭接收中断
dat=SBUF; //读取数据
if(dat=='R')
{
start = 1 ;
num = 0 ;
}
if(start == 1)
{
if (num == 3)
{
while(1)
{
sendH(dat);delayms(1000);
}
}
}
num ++ ;
IE = 1 ;
|
|