标题:
STC8系列单片机RS485偶校验通信程序经常收发不成功?
[打印本页]
作者:
归刃
时间:
2023-5-8 10:16
标题:
STC8系列单片机RS485偶校验通信程序经常收发不成功?
经常收发不成功 代码如下
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个字节正常 2个以上就出现乱码
作者:
人中狼
时间:
2023-5-8 19:50
485是半双工的
作者:
yzwzfyz
时间:
2023-5-9 09:20
双方串行时序时钟或相伴偏差较大的,会出现前个把字节OK,后面就错了。
作者:
coody_sz
时间:
2023-5-9 10:33
485是半双工的,切换收发模式时,给一点点时间稳定。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1