📄 rs485.c
字号:
//-----------------------------------------------
//www.zlgmcu.com
//-----------------------------------------------
#include "sc16is752.h"
//-----------------------------
//Multidrop mode
//-----------------------------
void Multidrop()
{
WriteRegister(LCR,ChannelA,0x2B); //0011 1011, set parity
//Paritybit bit5=1: Address byte
//Paritybit bit5=0: Data byte
WriteRegister(MCR,ChannelA,0x02); //Force RTS low level
WriteRegister(EFCR,ChannelA,0x31); //0011 0001 , 485 RTS control,Enable 485
WriteRegister(FCR,ChannelA,0x06); //enable ,reset FIFO
WriteRegister(FCR,ChannelA,0x01); //enable FIFO
// WriteRegister(IER,ChannelA,0x04); //0000 0100 Enable line interrupt
}
//-----------------------------
//Auto address mode
//-----------------------------
void AutoAddress(char Address)
{
WriteRegister(LCR,ChannelA,0xBF); //Enter enhance mode
WriteRegister(EFR,ChannelA,0x20);
WriteRegister(Xoff2,ChannelA,Address);
WriteRegister(LCR,ChannelA,0x3B); //0011 1011, set parity
//Paritybit bit5=1: Address byte
//Paritybit bit5=0: Data byte
WriteRegister(MCR,ChannelA,0x02); //Force RTS low level
WriteRegister(EFCR,ChannelA,0x31); //0011 0001 , 485 RTS control,Enable 485
WriteRegister(FCR,ChannelA,0x06); //enable ,reset FIFO
WriteRegister(FCR,ChannelA,0x01); //enable FIFO
// WriteRegister(IER,ChannelA,0x04); //0000 0100 Enable line interrupt
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -