利用dsp2812的SCI外设,经过485收发器SN65HVD10D将232的单端信号转换成485平衡传输信号,再通过RS232/Rs485/RS422转换器UT-203转换成232信号与PC串口连接。
程序如下:
void rs485_rx_tx(void)
{
unsigned int rx_data;
//DSP_A_485_DE/RE# 清零,使能485接收
GpioDataRegs.GPFDAT.bit.GPIOF0 = 0;
//delay 50 us
Delay_asm(898L);
if(SciaRegs.SCIRXST.bit.RXRDY) //是否接收到数据
{
rx_data = SciaRegs.SCIRXBUF.bit.RXDT;
//DSP_A_485_DE/RE# 置1,使能485发送
GpioDataRegs.GPFDAT.bit.GPIOF0 = 1;
//delay 50 us
Delay_asm(898L);
if(SciaRegs.SCICTL2.bit.TXRDY) //将接受到的数据发送出去
{
SciaRegs.SCITXBUF = rx_data;
}
}
//delay 500 us
Delay_asm(8998L);
return ;
}
注意:上边3个部分延时,是必须要有的,若第1、2部分不要,在高波特率时可能会出错,而第3部分不论高速、低速都是必须的,具体延时时间可以试凑确定。
联系客服