|
當(dāng)初學(xué)ModBus的時候?qū)懙?代碼不怎么好,但也算是正確,你參考一下
void Uart1_Isr() interrupt 4 //串口1中斷函數(shù)
{
static unsigned RX_Count=0; //接收到的字節(jié)數(shù)
if(TI) //發(fā)送中斷
{
TI=0;
busy=0;
}
//────────────────────────────────────────────────────
if(RI) //接收中斷
{
RI=0;
if((New_Cmd)) //新命令
{
New_Cmd=0; //新命令標(biāo)志位清除
TR0 = 1; //接收到串口信號后,定時器0開始計時
RX_Count=0; //重新指定指針位置
Buffer0.cnt_Byte=0; //接收字節(jié)數(shù)清除
}
Buffer0.buf_uart[RX_Count]=SBUF; //把接收到的數(shù)據(jù)保存
RX_Count++; //數(shù)組指針加1
Buffer0.cnt_Byte++; //接收字節(jié)數(shù)+1
T0_1ms_uart=0; //接收完一個字節(jié)數(shù)據(jù),重新計時
}
//───────────────────────────────────────────────────────────
}
|
|