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

📄 spi.c

📁 将DSPMcbap端口配置成SPI端口的演示代码
💻 C
字号:
//spi.c
int first = 1;
void spi_Init ()
{
	first = 1;
	MCBSP_FSET(SPCR10, RRST, 0);
	MCBSP_FSET(SPCR20, XRST, 0);
	MCBSP_FSET(SPCR20, FRST, 0);
	MCBSP_FSET(SPCR20, GRST, 0);
	MCBSP_RSET (SPCR10,0x1030);
	MCBSP_RSET (SPCR20,0x130);
	MCBSP_RSET (RCR10,0);
	MCBSP_RSET (RCR20,0x5);
	MCBSP_RSET (XCR10,0);
	MCBSP_RSET (XCR20,0x5);
	MCBSP_RSET (SRGR10,0x8C7);
	MCBSP_RSET (SRGR20,0x2009);
	MCBSP_RSET (MCR10,0);
	MCBSP_RSET (MCR20,0);
	MCBSP_RSET (PCR0,0x0f0f);
	MCBSP_RSET (RCERA0,0);
	MCBSP_RSET (RCERB0,0);
	MCBSP_RSET (XCERA0,0);
	MCBSP_RSET (XCERB0,0);
	MCBSP_wait();
	MCBSP_FSET(SPCR10, RRST, 1);
	MCBSP_FSET(SPCR20, XRST, 1);
	MCBSP_wait();
}
void spi_Open ()
{
}
void spi_Close ()
{
}
void byteToSpi (unsigned char data)
{
	volatile int i;
	if (!first) 
	{
		//check xrdy (only if not first write)
		while (MCBSP_FGET(SPCR20,XRDY)== 0);
	}
	i=MCBSP_RGET (DRR10);
	i=MCBSP_RGET (DRR10);
	MCBSP_RSET (DXR20,0);
	MCBSP_RSET (DXR10,data); //write output data to dxr
	if (first)
	{
		MCBSP_FSET(SPCR20, FRST, 1);
		MCBSP_FSET(SPCR20, GRST, 1);
		MCBSP_wait(); //wait for Sample rate generator to settle
		first = 0; //start sclk, /cs generator for first write
	}
	while (MCBSP_FGET (SPCR10,RRDY) == 0);//wait for completion
	i=MCBSP_RGET (DRR10);//clear buffer
}

unsigned char spiToByte ()
{
	unsigned char read1;
	volatile int i;
	while (MCBSP_FGET(SPCR20,XRDY)== 0); //wait for xrdy
	i=MCBSP_RGET (DRR10);
	i=MCBSP_RGET (DRR10);
	i=MCBSP_RGET (DRR10);
	//MCBSP_RSET (DXR20,0);
	MCBSP_RSET (DXR10,0xAA); //dummy xmit to start clock and /cs, data is	don't care
	while (MCBSP_FGET (SPCR10,RRDY) == 0); //wait for data
	read1 = MCBSP_RGET (DRR10); //read result
	return read1;
}

⌨️ 快捷键说明

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