標題:
STC8系列單片機RS485偶校驗通信程序經(jīng)常收發(fā)不成功?
[打印本頁]
作者:
歸刃
時間:
2023-5-8 10:16
標題:
STC8系列單片機RS485偶校驗通信程序經(jīng)常收發(fā)不成功?
經(jīng)常收發(fā)不成功 代碼如下
sfr P3M0=0xB2;
sfr P3M1=0xB1;
unsigned char var0,var;
void main(void)
{
init();
while(1){}
}
void delay_ms(unsigned char ms)
{
unsigned int i;
do{
i = MAIN_Fosc / 10000;
while(--i);
}while(--ms);
}
void init(void)
{
P_SW2=0x80;
XOSCCR=0xc0;
while(!(XOSCCR&1));
CLKDIV=0x00;
CKSEL=0x01;
P_SW2=0x00;
P3M0=64;
IE=0x00; //關閉所有中斷
S2CON=0X90;
T2L=(65536-FOSC/19200/4);
T2H=(65536-FOSC/19200/4)>>8;
AUXR=0X14;
RW485 = LOW;
IE2=0x01;//使能串口2中斷
EA=1;
}
void SendChar232(UCHAR senddata)
{
RW485 = HIGH;
var0 =0;
var
+
=
var0
;
P ? (S2CON |= 0x08) : (S2CON &= ~0x08);
S2BUF=senddata;
while(!(S2CON&2));
S2CON&=(~2);
delay_ms(50);
RW485 = LOW;
}
void USART2_ISR(void) interrupt 8 using 1
{
unsigned char redata;
unsigned char i=0;
if(S2CON&1)
{
var0 =0;
redata = S2BUF;
var = redata;
var += var0;
if((S2CON & 0x04) == P)
{
SendChar232(0x41);
}
S2CON&=(~1);
}
}
作者:
歸刃
時間:
2023-5-8 19:13
接收1個字節(jié)正常 2個以上就出現(xiàn)亂碼
作者:
人中狼
時間:
2023-5-8 19:50
485是半雙工的
作者:
yzwzfyz
時間:
2023-5-9 09:20
雙方串行時序時鐘或相伴偏差較大的,會出現(xiàn)前個把字節(jié)OK,后面就錯了。
作者:
coody_sz
時間:
2023-5-9 10:33
485是半雙工的,切換收發(fā)模式時,給一點點時間穩(wěn)定。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1