欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
STC12 串口1通訊中有 卡死現(xiàn)象 求解
[打印本頁]
作者:
billy0664
時(shí)間:
2016-10-11 11:46
標(biāo)題:
STC12 串口1通訊中有 卡死現(xiàn)象 求解
串口1 有2個(gè)命令一個(gè)是ZZAE(發(fā)送后 回傳數(shù)據(jù))和 ZZBE (停止回傳數(shù)據(jù))
目前的情況是 反復(fù)ZZAE ZZBE 發(fā)送后 會(huì)將單片機(jī)卡死。。。 求幫助啊
下面是 我的串口設(shè)置 串口中斷程序
void InitUART(void)
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位數(shù)據(jù),可變波特率
AUXR |= 0x40; //定時(shí)器1時(shí)鐘為Fosc,即1T
AUXR &= 0xFE; //串口1選擇定時(shí)器1為波特率發(fā)生器
TMOD &= 0x0F; //清除定時(shí)器1模式位
TMOD |= 0x20; //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
TL1 = 0xDC; //設(shè)定定時(shí)初值 115200--FA 57600--F4 19200--DC
TH1 = 0xDC; //設(shè)定定時(shí)器重裝值
ET1 = 0; //禁止定時(shí)器1中斷
TR1 = 1; //啟動(dòng)定時(shí)器1
ES=1;
AUXR &= 0xF7; //波特率不倍速
S2CON = 0x50; //8位數(shù)據(jù),可變波特率
AUXR |= 0x04; //獨(dú)立波特率發(fā)生器時(shí)鐘為Fosc,即1T
BRT = 0xFA; //設(shè)定獨(dú)立波特率發(fā)生器重裝值
AUXR |= 0x10; //啟動(dòng)獨(dú)立波特率發(fā)生器
EA =1; //開總中斷
IE2 =0x01; //開串口2中斷 ES2=1
}
/****************串行口1發(fā)送****************/
void sendbyte(uchar c)
{
SBUF=c;
while(!TI); //等待發(fā)送完成
TI=0;
}
/****************串行口1字符串地址發(fā)送****************/
void SendString1(uchar *string)//此處*string相當(dāng)于數(shù)組
{
while(*string!='\0')//判斷是否到字符串末尾
{
sendbyte(*string);
string++;
}
}
串口1中斷
void Uart_Isr() interrupt 4 using 2{
if(RI == 1)
{
RI=0;
rbuf[Digit]=SBUF;
if(rbuf[Digit]==0x45)
{
if(rbuf[Digit-3]==0x5a&&rbuf[Digit-2]==0x5a&&rbuf[Digit-1]==0x41&&rbuf[Digit]==0x45) //ZZAE
{
ret_flag=1;
Digit=0;
lockzzabe=1;
}
else if(rbuf[Digit-3]==0x5a&&rbuf[Digit-2]==0x5a&&rbuf[Digit-1]==0x42&&rbuf[Digit]==0x45&&lockzzabe==1) //ZZBE
{
ret_flag=2;
ES = 0;
Digit=0;
}
// ES = 0;
Digit=0;
}
else //其他輸出為錯(cuò)
{
ret_flag=99;
Digit=0;
}
}
Digit++;
}
if (TI)
{
TI = 0;
busy = 0;
}
}
作者:
青文的世界
時(shí)間:
2018-5-1 21:38
我也經(jīng)常卡死,據(jù)說是因?yàn)殡娔X問題,也不知道具體是什么問題
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1