📄 sci.c
字号:
void SCI_init()
{
*SCICCR = 0x7;
*SCICTL1 = 0x13;
*SCICTL2 = 0x2;//使能接收中断,禁止发送中断。
*SCIHBAUD = 0x1;
*SCILBAUD = 0x37;//9600,计算公式--》BRR = (SYSCLK/(SCI通讯波特率×8))-1,在这里开发板SYSCLK是15M
//自己作的板子,12M晶振,为9B
//2倍频的时候是0x137
//4倍频的时候不稳定
*SCICTL1 = 0x33;
*SCIPRI = 0x60;
*MCRA = 0x3;
*PADATDIR = 0x100;
*IMR = 0x12;//使能INT2和INT5
}
void SCI_Send_Char(char m_char)
{
*SCITXBUF = m_char;
while(!(*SCICTL2 & 0x80));//等待发送完成
}
void SCI_Send_String(char * string)
{
int l = strlen(string);
int i = 0;
for(i=0;i<l;i++)
{
*SCITXBUF = string[i];
while(!(*SCICTL2 & 0x80));//等待发送完成
}
*SCITXBUF = '\n';//换行
while(!(*SCICTL2 & 0x80));//等待发送完成
}
void SCI_Recv()
{
char RCV_char;
static int i = 0;
RCV_char = *SCIRXBUF;
if(RCV_char == 0x0d)//回车符
SCI_Send_Char('\n');
else
SCI_Send_Char(RCV_char);
*IFR = 0x0010;
asm(" clrc INTM");//开总中断
return;
}
void interrupt SCI_INT()
{
switch( *PVIR )
{
case 6: SCI_Recv();
// case 7: SCI_Send_String("I am LvWei!");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -