spi1.c

来自「演练硬件McBSP模块配置为SPI接口的应用」· C语言 代码 · 共 49 行

C
49
字号
/*-----------------------------------------------------------
硬件McBSP模块配置为SPI接口
实验目的:
演练硬件McBSP模块配置为SPI接口的应用。
------------------------------------------------------------*/
void LcdObj::LcdSpiSetup(void)
{
	McBSP1->SPSA = SPCR1;
	McBSP1->SPSD = 0;
	// McBSP1->SPSD &= ~(1 << SPCR1_RRST);//禁止串口接收
	_delay_loop_(1);//延时等待
	McBSP1->SPSA = SPCR2;
	McBSP1->SPSD = 0;
	// McBSP1->SPSD &= ~(1 << SPCR2_XRST);//禁止串口发送
	_delay_loop_(1);//延时等待
	McBSP1->SPSA = SPCR1;
	McBSP1->SPSD = (0x02 << SPCR1_CLKSTP);//CLKSTP=10b
	_delay_loop_(1);//延时等待
	McBSP1->SPSA = PCR;
	McBSP1->SPSD = (1 << PCR_FSXM) //设置FSX引脚为输出,控制LCD12864的片选信号SS
								|(0 << PCR_FSXP) //FSX引脚平时输出低电平(LCD12864的片选信号SS无效)
								|(1 << PCR_CLKXM) //设置CLKX引脚为输出
								|(1 << PCR_CLKXP);//CLKXP引脚平时输出高电平
	_delay_loop_(1);//延时等待
	McBSP1->SPSA = SRGR1;
	McBSP1->SPSD = (0x07 << SRGR1_FWID) //0x00~0x07~0xff
								|(0x80 << SRGR1_CLKGDV);//速率0x80
	_delay_loop_(1);//延时等待
	McBSP1->SPSA = SRGR2;
	McBSP1->SPSD = (1 << SRGR2_CLKSM);//
	_delay_loop_(1);//延时等待
	McBSP1->SPSA = RCR1;
	McBSP1->SPSD = (0x00 << RCR1_RFRLEN1);//8BIT
	_delay_loop_(1);//延时等待
	McBSP1->SPSA = XCR1;//延时等待
	McBSP1->SPSD = (0x00 << XCR1_RFRLEN1);//8BIT
	_delay_loop_(1);//延时等待
	McBSP1->SPSA = RCR2;
	McBSP1->SPSD = (0x02 << RCR2_RDATDLY);//0x01
	_delay_loop_(1);//延时等待
	McBSP1->SPSA = XCR2;
	McBSP1->SPSD = (0x02 << XCR2_RDATDLY);//0x01
	_delay_loop_(1);//延时等待
	McBSP1->SPSA = SPCR2;
	McBSP1->SPSD |= (1 << SPCR2_GRST) | (1 << SPCR2_XRST) | (1 << SPCR2_FRST);
	_delay_loop_(1);//延时等待
	
}	
	

⌨️ 快捷键说明

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