您的位置 首页 系统

串行通讯中止方法子程序

*—————————————————–**文件描述:本文件包含了串行通信的4子程序,分别为:**(1)SCISend1:串行发送1

/*—————————————————–*

*文件描绘:本文件包括了串行通讯的4子程序,分别为: *
*(1)SCISend1:串行发送1字节 *
*(2)SCISendN:串行发送n字节 *
*(3)SCIRe1:串行接纳1字节 *
*(4)SCIReN:串行接纳n字节 *
//[以下为子程序源代码]
//[包括头文件]
#include “SCI.h”
/*SCISend1:串行发送1个字节—————————–*
*功 能:串行发送1个字节 *
*参 数:要发送的数据 *
*返 回:无 *
*—————————————————–*/
void SCISend1(unsigned char o)
{//判别ReStatusR的第SendTestBit位是否为1,是1能够发送
while(1)
if ((ReSendStatusR & (1< { ReSendDataR=o;
break;}
}
/*SCISendN:串行发送N个字节—————————–*
*功 能:发送数组中的N个字节数据 *
*参 数:待发送的数据字节数及其要寄存的数组首地址 *
*返 回:无 *
*—————————————————–*/
void SCISendN(unsigned char n,unsigned char ch[])
{int i;
for(i=0;i
SCISend1(ch[i]);
}
/*SCIRe1:串行收一个字节数据—————————-*
*功 能:从串行口接纳1个字节的数据 *
*参 数:标志指针p *
*返 回:接纳到的数据(若接纳失利,回来0xff) *
*说 明:参数*p带回接纳标志=0收到数据,=1未收到数据 *
*—————————————————–*/
unsigned char SCIRe1(unsigned char *p)
{ unsigned int k;
unsigned char i;
//ReStatusR第ReTestBit位为1表明可接纳数据
for(k=0;k<0xfbbb;k++)
if ((ReSendStatusR & (1< {i=ReSendDataR;
*p=0x00;
break;}
if(k>=0xfbbb)
{i=0xff;
*p=0x01;}
return i; //回来接纳到的数据
}
/*SCIReN:HC08串行接纳N个字节—————————*
*功 能:接纳N个字节数据,并寄存在ch数组中 *
*参 数:待接纳的数据字节数及其寄存的数组首地址 *
*返 回:接纳标志=0收到数据,=1未收到数据 *
*—————————————————–*/
unsigned char SCIReN(unsigned char n,unsigned char ch[])
{int m;
unsigned char fp;
m=0;
while (m{
ch[m]=SCIRe1(&fp);
if (fp==1) return 1;
m++;
}
return 0;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/261613.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部