GPIO_InitStructure.Pin = SPI_MASTER_MOSI_PIN | SPI_MASTER_CLK_PIN ;
GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP;
GPIO_InitStructure.GPIO_Slew_Rate = GPIO_SLEW_RATE_FAST;
GPIO_InitStructure.GPIO_Alternate = SPI_MASTER_GPIO_ALTERNATE;
GPIO_Peripheral_Initialize(SPI_MASTER_GPIO, &GPIO_InitStructure);
/* If CLKPOL is HIGH, set SPI_SCK GPIO to GPIO_PULL_UP, otherwise set to GPIO_PULL_DOWN */
GPIO_InitStructure.Pin = SPI_MASTER_CLK_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP;
GPIO_InitStructure.GPIO_Slew_Rate = GPIO_SLEW_RATE_FAST;
GPIO_InitStructure.GPIO_Pull = GPIO_PULL_UP;
GPIO_InitStructure.GPIO_Alternate = SPI_MASTER_GPIO_ALTERNATE;
GPIO_Peripheral_Initialize(SPI_MASTER_GPIO, &GPIO_InitStructure);
SPI_Initializes_Structure(&SPI_InitStructure);
SPI_InitStructure.DataDirection = SPI_DIR_SINGLELINE_TX;
SPI_InitStructure.SpiMode = SPI_MODE_MASTER;
SPI_InitStructure.DataLen = SPI_DATA_SIZE_8BITS;
SPI_InitStructure.CLKPOL = SPI_CLKPOL_HIGH;
SPI_InitStructure.CLKPHA = SPI_CLKPHA_SECOND_EDGE;
SPI_InitStructure.NSS = SPI_NSS_SOFT;
/* It is recommended that the SPI master mode of the C version chips should not exceed 18MHz */
SPI_InitStructure.BaudRatePres = SPI_BR_PRESCALER_16;
SPI_InitStructure.FirstBit = SPI_FB_MSB;
SPI_InitStructure.CRCPoly = 7;
SPI_Initializes(SPI_MASTER, &SPI_InitStructure);
SPI_SS_Output_Enable(SPI_MASTER);
/* Enable SPI_MASTER */
SPI_ON(SPI_MASTER);
RCC_Pclk2_Config(RCC_HCLK_DIV2);
/* Enable peripheral clocks --------------------------------------------------*/
/* spi clock enable */
RCC_APB2_Peripheral_Clock_Enable(SPI_MASTER_PERIPH);
/* GPIO Periph clock enable */
RCC_AHB_Peripheral_Clock_Enable(SPI_MASTER_PERIPH_GPIO );
void LCD_Writ_Bus(u8 dat)
{
// u8 i;
// LCD_CS_Clr();
// for(i=0;i<8;i++)
// {
// LCD_SCLK_Clr();
// if(dat&0x80)
// {
// LCD_MOSI_Set();
// }
// else
// {
// LCD_MOSI_Clr();
// }
// LCD_SCLK_Set();
// dat<<=1;
// }
// LCD_CS_Set();
LCD_CS_Clr();
// LCD_CS_Set();
while (SPI_I2S_Flag_Status_Get(SPI1, SPI_I2S_FLAG_TE) == RESET);
/* Send SPI_SLAVE data */
SPI_I2S_Data_Transmit(SPI1,dat);
LCD_CS_Set();
} |