⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcu_sci.c

📁 UCOSII在mcs12dg128上的移植
💻 C
字号:
//==================================================================================================
//| 文件名称 | MCU_Sci.c
//|--------- |--------------------------------------------------------------------------------------
//| 文件描述 | MCU内部SCI模块驱动
//|--------- |--------------------------------------------------------------------------------------
//| 运行环境 | 所有C/++语言编译器,包括单片机编译器
//|--------- |--------------------------------------------------------------------------------------
//| 版权声明 | Copyright2008
//|----------|--------------------------------------------------------------------------------------
//|  版本    |  时间       |  作者     | 描述
//|----------|-------------|-----------|------------------------------------------------------------
//|  V1.0    | 2008.09.25  | chen      | 
//==================================================================================================
#define  MCU_SCI_GLOBALS
#include "..\Sources\Application\Include.h"

/*-------串口初始化----------------------*/
void Sci0Init()
{
//设置波特率,波特率=MCLK/(16*BR)
  SCI0BDH = 0x00;  //关闭红外,IREN=0
	SCI0BDL = 81;  //162,9.6Kbps//81,19.2Kbps
//控制寄存器,设置回送,单线等方式选择,帧格式,唤醒,空闲检测类型以及奇偶校验
	SCI0CR1=0;					/*normal,no parity*///0x13:11位奇校验,0x12:11位偶校验
	SCI0CR2=0X2C;       /*RIE=1,TE=1,RE=1*/
}


/*-------发射端程序----------------------*/
void Sci0Tx(byte text)
{
	byte temp;
	temp=SCI0SR1;      /*clear flag*/
//发送前判断SC0DR是否处于忙状态。SC0DR.7=0:处于忙状态
	while (!SCI0SR1_TDRE);  /* wait for output buffer empty */
	while(!SCI0SR1_TC);   //等待数据发送结束
	SCI0DRH=0;
	SCI0DRL=text;
}

/*================================================================ 
* 函 数 名:Sci0TxStr(char *pt)
* 参    数:pt,指向字符串或字符数组的指针
* 功能描述:向PC机发送一串字符串
* 返 回 值:无
* 抛出异常: 
* 作    者:陈波扬 08/09/26
================================================================*/ 
void Sci0TxStr(char *pt)
{
	while(*pt!='\0')
	{
		Sci0Tx(*pt++);	
	}
}

/*-------接收端程序----------------------*/
byte Sci0Rx(void)
{
	byte result,temp;
	temp=SCI0SR1;      /*clear flag*/
	if((temp&0x20)>0)
  	result=SCI1DRL;
	return result;
}

⌨️ 快捷键说明

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