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

📄 dsp28_sci.c

📁 这是DSP2812关于串口初始化以及配置元程序,对DSP初学者非常有用,希望大家一起学习进步!
💻 C
字号:
/*************************************************************************************
** 文件名:DSP28_Sci.c

** Copyright (c) 2006-2006 CHEM

** 创建人:辛书辉

** 日  期:2006-10-01

** 修改人:辛书辉

** 日  期:2006-10-01

** 版  本:DSP2812.1

** 用  途: DSP28 SCI.

** 范  围: Initialization & Support Functions.

*************************************************************************************/

#include "DSP28_Device.h"

//---------------------------------------------------------------------------
// 初始化OCS主机RS232通讯接口
//
void InitSciA(void)
{
	EALLOW;
	GpioMuxRegs.GPFMUX.all		= 0x0030;

	EDIS;
	SciaRegs.SCICCR.all		= 0x07;		// 1 bit stop, no parity, idle mode, 8 bits data 
	SciaRegs.SCICTL1.all		= 0x03;		// enable TX 
	SciaRegs.SCICTL2.all		= 0x03;		//

// BAUD = X1 * 5 / 4 / SCI / 8 - 1;
//	SciaRegs.SCIHBAUD		= 0x01;
//	SciaRegs.SCILBAUD		= 0x67;		// 22.1184M_9600
	
//	SciaRegs.SCIHBAUD		= 0x00;
//	SciaRegs.SCILBAUD		= 0xB3;		// 22.1184M_19200
	
	SciaRegs.SCIHBAUD		= 0x00;
	SciaRegs.SCILBAUD		= 0x1D;		// 22.1184M_115200			
	
	SciaRegs.SCICTL1.all		= 0x23;
	
	PieCtrl.PIEIER9.bit.INTx1	= 1;		// enable rx_int
	PieCtrl.PIEIER9.bit.INTx2	= 1;		// enable tx_int
}

//---------------------------------------------------------------------------
// 初始化测速仪RS422通讯接口
//
void InitSciB(void)
{
	EALLOW;
	GpioMuxRegs.GPGMUX.all		= 0x0030;

	EDIS;
	ScibRegs.SCICCR.all		= 0x86;		// 2 bits stop, no parity, idle mode, 7 bits data 
	
	ScibRegs.SCICTL1.all		= 0x03;		// enable TX 
	ScibRegs.SCICTL2.all		= 0x03;		//
	
// BAUD = X1 * 5 / 4 / SCI / 8 - 1;
//	ScibRegs.SCIHBAUD		= 0x01;
//	ScibRegs.SCILBAUD		= 0x67;		// 22.1184M_9600
	
//	ScibRegs.SCIHBAUD		= 0x00;
//	ScibRegs.SCILBAUD		= 0xB3;		// 22.1184M_19200
	
	ScibRegs.SCIHBAUD		= 0x00;
	ScibRegs.SCILBAUD		= 0x1D;		// 22.1184M_115200			
	
	ScibRegs.SCICTL1.all		= 0x23;
	
	PieCtrl.PIEIER9.bit.INTx3	= 1;		// enable rx_int
	PieCtrl.PIEIER9.bit.INTx4	= 1;		// enable tx_int
}

//---------------------------------------------------------------------------
// 初始化串行通讯接口
//
void InitSci(void)
{
	InitSciA();					// 初始化OCS主机RS232通讯串口
	InitSciB();					// 初始化激光测速仪RS422通讯串口
}

//---------------------------------------------------------------------------
// 检查OCS主机RS232发送是否完成
// 返回:1=完成,0=忙
//
int SciaTx_Ready(void)
{
	return (SciaRegs.SCICTL2.bit.TXRDY == 1)? 1: 0;
}

//---------------------------------------------------------------------------
// 检查OCS主机RS232接收缓冲区是否准备好读取
// 返回:1=有新数据,0=无数据
//
int SciaRx_Ready(void)
{
	return (SciaRegs.SCIRXST.bit.RXRDY == 1)? 1: 0;
}

//---------------------------------------------------------------------------
// 检查激光测速仪RS422发送是否完成
// 返回:1=完成,0=忙
//
int ScibTx_Ready(void)
{
	return (ScibRegs.SCICTL2.bit.TXRDY == 1)? 1: 0;
}

//---------------------------------------------------------------------------
// 检查激光测速仪RS422接收缓冲区是否准备好读取
// 返回:1=有新数据,0=无数据
//
int ScibRx_Ready(void)
{
	return (ScibRegs.SCIRXST.bit.RXRDY == 1)? 1: 0;
}	
	
//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

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