串行通信中断方式子程序

来源:本站
导读:目前正在解读《串行通信中断方式子程序》的相关信息,《串行通信中断方式子程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《串行通信中断方式子程序》的详细说明。
简介:本文给大家分享了串行通信中断方式子程序。

/*-----------------------------------------------------*

*文件描述:本文件包含了串行通信的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;

}

提醒:《串行通信中断方式子程序》最后刷新时间 2024-03-14 01:01:22,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《串行通信中断方式子程序》该内容的真实性请自行鉴别。