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

📄 mcbsp.c

📁 一个完整的C语言构架的串行口通信的源程序
💻 C
字号:
/*************************************************************/
/*				串口初始化									 */			
/*************************************************************/
#include "mcbsp.h"                                             


unsigned int MA3140_Read( void )
{
			MCBSP0_SPSA0 = SPCR2_SUBADDR;
			do
			{				
			}while((MCBSP0_SPSD0&2) != 0x02);
			MCBSP0_DXR10 = 0;

			MCBSP0_SPSA0 = SPCR1_SUBADDR;
			do
			{				
			}while((MCBSP0_SPSD0&2) != 0x02);
			return (MCBSP0_DRR10);
}


void MA3140_Send( unsigned int data )
{

			MCBSP0_SPSA0 = SPCR2_SUBADDR;
			do
			{				
			}while((MCBSP0_SPSD0&2) != 0x02);
			MCBSP0_DXR10 = ( data & 0x0ff )|0x8000;

			MCBSP0_SPSA0 = SPCR1_SUBADDR;
			do
			{				
			}while((MCBSP0_SPSD0&2) != 0x02);
}
void MA3140_Init( void )
{
	unsigned int inData;
	do
	{
			MCBSP0_SPSA0 = SPCR2_SUBADDR;
			do
			{				
			}while((MCBSP0_SPSD0&2) != 0x02);
	
		MCBSP0_DXR10 = MA3140_CtrData;/* 9600bps,8-bit words,no parity,one stop with 3.6864MHz crystal,transmit empty assert IRQ*/		

			MCBSP0_SPSA0 = SPCR1_SUBADDR;
			do
			{				
			}while((MCBSP0_SPSD0&2) != 0x02);

			do
			{		
				inData = MCBSP0_DRR10;		
			}while((MCBSP0_SPSD0&2) == 0x02);  /*read over*/
	
			MCBSP0_SPSA0 = SPCR2_SUBADDR;
			do
			{				
			}while((MCBSP0_SPSD0&2) != 0x02);			
	
		MCBSP0_DXR10 = 0x4000;/* read back*/		
			MCBSP0_SPSA0 = SPCR1_SUBADDR;
			do
			{				
			}while((MCBSP0_SPSD0&2) != 0x02);	
	    inData = MCBSP0_DRR10;
   }while((inData & 0x3fff)!=(MA3140_CtrData&0x3fff));

}

void MCBSP0_Init( void )
{
	unsigned int data;
	
	data = CLKSTP_s|RINTM_s|DLB_s|RJUST_s|DXENA_s|ABIS_s|RSYNCEER_S;
	MCBSP0_SPSA0 = SPCR1_SUBADDR;	
	MCBSP0_SPSD0 = data;
	
	data = FREE_s|XINTM_s;
	MCBSP0_SPSA0 = SPCR2_SUBADDR;	
	MCBSP0_SPSD0 = data;	
	
	
	data = FREE_s|FRST_s|XINTM_s;
	MCBSP0_SPSA0 = SPCR2_SUBADDR;	
	MCBSP0_SPSD0 = data;
		
	data = RWDLEN1_s16|RFRLEN1_s1;
	MCBSP0_SPSA0 = RCR1_SUBADDR;	
	MCBSP0_SPSD0 = data;
		
	data = RDATDLY_s|RFIG_s|RWDLEN2_s16|RFRLEN2_s1;
	MCBSP0_SPSA0 = RCR2_SUBADDR;	
	MCBSP0_SPSD0 = data;
		
	data = CLKGDV_s|FWID_s;
	MCBSP0_SPSA0 = SRGR1_SUBADDR;	
	MCBSP0_SPSD0 = data;
		
	data = CLKSM_s|FSGM_s|FPER_s;
	MCBSP0_SPSA0 = SRGR2_SUBADDR;	
	MCBSP0_SPSD0 = data;
		
	data = XWDLEN1_s16|XFRLEN1_s1;
	MCBSP0_SPSA0 = XCR1_SUBADDR;	
	MCBSP0_SPSD0 = data;
		
	data = XDATDLY_s|XFIG_s|XWDLEN2_s16|XFRLEN2_s1;
	MCBSP0_SPSA0 = XCR2_SUBADDR;	
	MCBSP0_SPSD0 = data;
		
	data = XIOEN_s|FSXM_s|FSRM_s|CLKXM_s|CLKRM_s|FSXP_s|FSRP_s|CLKXP_s|CLKRP_s;
	MCBSP0_SPSA0 = PCR_SUBADDR;	
	MCBSP0_SPSD0 = data;	
	
	
	data = FREE_s|FRST_s|GRST_s|XINTM_s;
	MCBSP0_SPSA0 = SPCR2_SUBADDR;	
	MCBSP0_SPSD0 = data;
	
	for (data=0;data<1000;data++)
	{
	}

	data = CLKSTP_s|RINTM_s|RRST_s|DLB_s|RJUST_s|DXENA_s|ABIS_s|RSYNCEER_S;
	MCBSP0_SPSA0 = SPCR1_SUBADDR;	
	MCBSP0_SPSD0 = data;
		
	data = FREE_s|FRST_s|GRST_s|XRST_s|XINTM_s;
	MCBSP0_SPSA0 = SPCR2_SUBADDR;	
	MCBSP0_SPSD0 = data;
		
	for (data=0;data<1000;data++)
	{
	}	
}

⌨️ 快捷键说明

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