init_spi.h

来自「STM32_LCD5110资料」· C头文件 代码 · 共 37 行

H
37
字号
#ifndef _INIT_SPI_
#define _INIT_SPI

void Init_SPI(void)
{
	SPI_InitTypeDef   SPI_InitStructure;		/* 定义 SPI 初始化结构体 */

	SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;//SPI 设置为双线双向全双工
	SPI_InitStructure.SPI_DataSize 	= SPI_DataSize_8b;//SPI 发送接收 8 位帧结构
	SPI_InitStructure.SPI_CPOL 		= SPI_CPOL_Low;//时钟空闲时保持低电平 
	SPI_InitStructure.SPI_CPHA 		= SPI_CPHA_2Edge;//数据捕获于第二个时钟沿 
	SPI_InitStructure.SPI_NSS 		= SPI_NSS_Soft;//内部 NSS 信号由 SSI 位控制
	SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;//波特率预分频值为 4
	SPI_InitStructure.SPI_FirstBit 	= SPI_FirstBit_MSB;//数据传输从 MSB 位开始
	SPI_InitStructure.SPI_CRCPolynomial = 7;//用于 CRC 值计算的多项式 
	SPI_InitStructure.SPI_Mode = SPI_Mode_Master;//设置 SPI2 为主机
	SPI_Cmd(SPI2, ENABLE);//使能 SPI2

	SPI_Init(SPI2, &SPI_InitStructure);		
}

/*void SPI2_SendByte(unsigned char byte)  //SPI数据发送函数
{
	SPI_I2S_SendData(SPI2, byte);	// SPI2 发送一个字节
	while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET); // 等待 SPI2 发送完毕	
}*/		 

/*unsigned char SPI2_ReadByte(void)
{	
	unsigned char dt = 0;
	while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET);// 等待 SPI2 接收数据完毕
	dt = SPI_I2S_ReceiveData(SPI2);// 读出 SPI2 接收的数据
	return	dt;
}*/

#endif

⌨️ 快捷键说明

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