📄 sci.c
字号:
#include <main.h>
#include "ex.h"
/*
+------------------------------------------------------------------------------+
函 数 名 : sci_init
功能描述 : SCI的初始化
函数原形 : void sci_init(U16 speed)
参数说明 :
支持资源 :
作 者 : 桂林
最后更改日期: 2002-11-01
+------------------------------------------------------------------------------+
*/
void sci_init(U16 speed)//speed=(12,24,48,96,192,384,1152;8-N-1)
{
SCICCR = 0x07;//8-N-1
SCICTL1 = 0x03;//reset sci
switch(speed)
{
case 12:{SCIHBAUD=0x10;SCILBAUD=0x46;break;}
case 24:{SCIHBAUD=0x08;SCILBAUD=0x22;break;}
case 48:{SCIHBAUD=0x04;SCILBAUD=0x11;break;}
case 96:{SCIHBAUD=0x02;SCILBAUD=0x08;break;}
case 192:{SCIHBAUD=0x01;SCILBAUD=0x03;break;}
case 384:{SCIHBAUD=0x00;SCILBAUD=0x81;break;}
default :{SCIHBAUD=0x00;SCILBAUD=0x2a;break;}//1152
};
SCICTL2 = 0x02;//enable rx int
SCIPRI = 0x0c;
SCICTL1 = 0x23;// sci work
}
/*
+------------------------------------------------------------------------------+
函 数 名 : sci_tx
功能描述 : SCI发送
函数原形 : void sci_tx(U16 x)
参数说明 : x是待发送数据
支持资源 :
作 者 : 桂林
最后更改日期: 2002-11-01
+------------------------------------------------------------------------------+
*/
void sci_tx(U16 x)
{
while(!GET_BIT(SCICTL2,6));
SCITXBUF = x;//SCITXBUF = (0x00ff & x);
}
/*
+------------------------------------------------------------------------------+
函 数 名 : sci_rx
功能描述 : SCI接收
函数原形 : U16 sci_rx(void)
参数说明 :
支持资源 :
作 者 : 桂林
最后更改日期: 2002-11-01
+------------------------------------------------------------------------------+
*/
U16 sci_rx(void)
{
while(!GET_BIT(SCIRXST,6));
return(SCIRXBUF);//return(0x00ff & SCIRXBUF);
}
/*
+------------------------------------------------------------------------------+
函 数 名 : SCIRX_ISR()
功能描述 : SCIRX中断函数
函数原形 : interrupt void SCIRX_ISR(void)
参数说明 :
支持资源 :
作 者 : 桂林
最后更改日期: 2002-11-15
+------------------------------------------------------------------------------+
*/
interrupt void SCIRX_ISR(void)
{
//sci_tx('c');
EnableINT;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -