📄 sci.c
字号:
#include "REGISTER.H"
int x,y,k=0;
//static int receive[4],j=0;
int receive[4],j=0;
const int var[4]={0x12,0x23,0x34,0x45};
//int var=0x0012;
void inline disable()
{
asm(" setc INTM");
asm(" setc SXM");
}
void inline enable()
{
asm(" clrc INTM");
}
main()
{
MCRA=MCRA&0x00EF; // IOPA4,IOPA6,IOPB端口配置为一般的I/O功能,
// TMS320LF240x的端口均为8位,MCRA为16位
// 因此控制了IOPA和IOPB的设置
PBDATDIR=0x0FF55; // IOPB端口设置为输出方式
PADATDIR=PADATDIR&0x0FFEF; // IOPA4=0
PADATDIR=PADATDIR|0x1010; // IOPA4 设置为输出方式,且IOPA4=1
PADATDIR=PADATDIR&0x0FFEF; // IOPA4=0
disable();
IFR=0xFFFF;
SCSR1=0x81FE; //sysclk=24M
// SCSR1=0x81FE;
WDCR=0xE8;
SCICCR=0x7;
SCICTL1=0x13;
SCICTL2=0x3;
// SCIHBAUD=0x01 ;
// SCILBAUD=0x38; //波特率为9600
SCIHBAUD=0x02 ;
SCILBAUD=0x08; //波特率为9600
SCICTL1=0x33;
SCIPRI=0x60;
MCRA=0x3;
PADATDIR=0x100;
IMR=0x10;
enable();
SCITXBUF=0x55;
while(1)
;
}
void UartSent()
{
static int i=0,m;
if(i>3)
return;
SCITXBUF=var[i++];
/*SCITXBUF=var; */
IFR=0x0010;
enable();
return;
}
void UartRec()
{
receive[j++]=SCIRXBUF;
if(j>4)
j=0;
IFR=0x0010;
enable();
}
void interrupt uarttr()
{
switch(PIVR)
{
case 6:UartRec();break;
case 7:UartSent(); break;
default:break;
}
return;
}
void interrupt nothing()
{
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -