sci.c

来自「项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档」· C语言 代码 · 共 64 行

C
64
字号
/*-----------------------------------------------------*
*文件描述:本文件包含了串行通信的4子程序,分别为:        *  
*(1)SCISend1:串行发送1字节                             *
*(2)SCISendN:串行发送n字节                             *
*(3)SCIRe1:串行接收1字节                               *
*(4)SCIReN:串行接收n字节                               *
*-------------《嵌入式应用技术基础教程》--------------*/
#include "SCI.h"

void SCISend1(unsigned char o)
{//判断ReStatusR的第SendTestBit位是否为1,是1可以发送
	while(1)
	{
		if ((ReSendStatusR & (1 << SendTestBit)) != 0)
		{ 
			ReSendDataR = o;
			break;
		}
	}
}

void SCISendN(unsigned char n,unsigned char ch[])
{
	int i;
	for(i = 0; i < n; i++)          
		SCISend1(ch[i]);
}

unsigned char SCIRe1(unsigned char *p)
{ 
	unsigned int k;
	unsigned char i;
	//ReStatusR第ReTestBit位为1表示可接收数据
	for(k = 0; k< 0xfbbb; k++)
	{
		if ((ReSendStatusR & (1 << ReTestBit)) != 0)
		{
			i = ReSendDataR;
			*p = 0x00; 
			break;
		} 
	}
	if(k >= 0xfbbb) 
	{
		i = 0xff;
		*p = 0x01;
	}  	
	return i;             //返回接收到的数据
}

unsigned char SCIReN(unsigned char n, unsigned char ch[])
{
	int m;                  
	unsigned char fp;
	m = 0;
	while (m < n)
	{ 	          
		ch[m]=SCIRe1(&fp); 
		if (fp == 1) return 1;
		m ++;
	}
	return 0;	 
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?