这是初始化代码:
/*
*********************************************************************************************************
* 函 数 名: LCDComConfig
* 功能说明: LCD显示驱动配置
* 形 参: 无
* 返 回 值: 无
* 硬件接口说明:
* PB15-SPI2_MOSI PB13-SPI2_SCK PB12-A0 PB11-RST PB10-CS
*********************************************************************************************************
*/
static void LCDComConfig(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
SPI_InitTypeDef spi;
/*打开GPIO时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);
/* 配置引脚 */
GPIO_InitStructure.GPIO_Pin = LCD_A0_IO | LCD_RST_IO | LCD_CS_IO;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LCD_PORT, &GPIO_InitStructure);
/*配置SPI模式*/
GPIO_InitStructure.GPIO_Pin = LCD_MOSI_IO | LCD_SCK_IO;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(LCD_PORT, &GPIO_InitStructure);
/* SPI2 Config -------------------------------------------------------------*/
spi.SPI_Direction = SPI_Direction_1Line_Tx; /* 数据方向:1线全双工 */
spi.SPI_Mode = SPI_Mode_Master; /* STM32的SPI工作模式 :主机模式 */
spi.SPI_DataSize = SPI_DataSize_8b; /* 数据位长度 : 8位 */
spi.SPI_CPOL = SPI_CPOL_High; /* 时钟极性高电平 SPI_CPOL_High*/
spi.SPI_CPHA = SPI_CPHA_2Edge; /* 时钟的第2个边沿采样数据 SPI_CPHA_2Edge*/
spi.SPI_NSS = SPI_NSS_Soft;
spi.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16; /* 设置波特率预分频系数 SPI_BaudRatePrescaler_16 */
spi.SPI_FirstBit = SPI_FirstBit_MSB; /* 数据位传输次序:高位先传 */
spi.SPI_CRCPolynomial = 7; /* CRC多项式寄存器,复位后为7.*/
SPI_Init(SPI2, &spi);
/* Enable SPI2 */
SPI_Cmd(SPI2, ENABLE);
LCD_A0_0;
LCD_CS_1;
LCD_RST_1;
// GPIO_ResetBits(GPIOB,GPIO_Pin_10);
// GPIO_ResetBits(GPIOB,GPIO_Pin_11);
// GPIO_ResetBits(GPIOB,GPIO_Pin_12);
}
|