Board logo

标题: [求助]大家谁有dp256的SCI串口程序啊. [打印本页]

作者: lijun2631    时间: 2008-12-3 20:29     标题: [求助]大家谁有dp256的SCI串口程序啊.

请问大家谁有mcs12dp256这个片的SCI串行通讯收发数据的程序呀.想用串口调试助手实现数据的收发.并且能在调试助手上显示出来效果.我是初学者请大家帮帮助吧.我弄了好几天都没弄好好郁闷呀..谢谢
作者: Forest_Can    时间: 2009-8-6 15:51

void SCI0_Init(void)
{
U8 Date;
SCI0BDH=0x00;
SCI0BDL=0xA4;
//SCI0CR1=0x40;
SCI0CR1=0x00;
Date=SCI0DRL;
Date=SCI0SR1;
//SCI0CR2=0xEC;
SCI0CR2=0x0C;
}

//------------------------------------------------------------------
void SCI0_Send_OneByte(S8 Date)
{
while(1) //等待数据寄存器为空时,发送
if(SCI0SR1_TDRE){
SCI0DRL=Date;
break;
}
while(!SCI0SR1_TC); //等待直到发送完成
}

//------------------------------------------------------------------
void SCI0_Send_N_Byte(U8 n,S8 p[])
{
U8 i;
for(i=0;i<n;i++)SCI0_Send_OneByte(p);
}

//------------------------------------------------------------------
U8 SCI0_Re_One(U8 *f) //接收一个字节 返回接收数据和接收成功标识
{
U8 Date;
*f=0x01;
while(1){
if(SCI0SR1_IDLE){
Date=0xFF;
break; //如果总线空闲,则没有数据可接收
}
else if(SCI0SR1_RDRF){ //等待接收寄存器满,读数据
Date=SCI0DRL;
*f=0x00; //接收成功
break;
}
}
return Date; //返回接收到的数据
}
//------------------------------------------------------------------
U8 SCI0_Re_N(U8 n,U8 *p) //接收n字节数据,存放在数组p[]中
{
U8 i;
U8 fail=1;

for(i=0;i<n;i++){
p=SCI0_Re_One(&fail);
if(fail)break;
}
return fail;
}
//-------------------------------------------------------------------

还有问题 仅供参考






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0