XS128的SCI寄存器主要用来通信,下面主要来介绍一下常用到的各个寄存器
波特率控制寄存器SCIBDH SCIBDL 一般设置IREN=0,则SCI baud rate=SCI bus clock/(16xSBR[12:0])
数据寄存器SCIDRH SCIDRL
控制寄存器SCICR1和SCICR2
状态寄存器SCISR1和SCISR2
//串口部分
void SCI_int()
{
SCI0BD=0x41;//40M时38400波特率
SCI0CR1=0x00;//8为数据位,无校验
SCI0CR2=0X2C;//发送允许,接收中断允许
}
unsigned char SCI_read()
{
if(SCI0SR1_RDRF==1)
{
SCI0SR1_RDRF=1;
return SCI0DRL;
}
}
void SCI_write(unsigned char sendchar )
{
while(!(SCI0SR1&0X80))
SCI0DRH=0;
SCI0DRL=sendchar;
}
#pragma CODE_SEG NON_BANKED
void interrupt 20 SCI0_re(void)
{
unsigned char ch;
ch=SCI_read();
SCI_write(ch);
}