📄 sc16is系列控制经验.txt
字号:
请注意有的寄存器只能在满足有的条件下被修改.
//------------------------------------------
1 WriteRegister(LCR,ChannelA,0xBF); //Enter enhance mode
2 WriteRegister(MCR,ChannelA,0x04); //Enable TCR,TLR
3 WriteRegister(EFR,ChannelA,0x10); //Enhance fucntion
4 WriteRegister(TCR,ChannelA,0x23); //TCR[3:0](halt) Must > TCR[7:4](resume)
5 WriteRegister(EFR,ChannelA,0xC0); //1100 0000,Auto CTS,Auto RTS
在这里如果5插在2的前面,有可能导致对EFR的操作被3更改.
6 WriteRegister(LCR,ChannelA,0x00); //0000 0000,
7 WriteRegister(FCR,ChannleA,0x00); //00 00000,8 characters
FCR的bit6,bit7操作前,需要保持LCR的bit7=0.
在SC16IS中,可以不用对FCR进行设置,使用他的默认值.
//------------------------------------------
sbit TX=P0^0;
void Delay20us()
{
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();
}
void Delay84us()
{
Delay20us();
Delay20us();
Delay20us();
Delay20us();
}
void test()
{
TX=0;
Delay20us();
TX=1;
Delay84us();
Delay20us();
Delay84us();
TX=0;
Delay20us();
TX=1;
Delay84us();
Delay20us();
Delay84us();
TX=0;
Delay20us();
TX=1;
Delay84us();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -