高中生
最后登录1970-1-1
在线时间 小时
注册时间2016-10-28
|
SPI初始化程序如下:
#define SPI5_CLK RCC_APB2Periph_SPI5
/*CLK Pin setting*/
#define SPI_CLK_PIN GPIO_Pin_7
#define SPI_CLK_PORT GPIOF
#define SPI_CLK RCC_AHB1Periph_GPIOF
/*MISO Pin setting*/
#define SPI_MISO_PIN GPIO_Pin_8
#define SPI_MISO_PORT GPIOF
#define SPI_MISO_CLK RCC_AHB1Periph_GPIOF
/*MOSI Pin setting*/
#define SPI_MOSI_PIN GPIO_Pin_9
#define SPI_MOSI_PORT GPIOF
#define SPI_MOSI_CLK RCC_AHB1Periph_GPIOF
/*NSS Pin setting*/
#define SPI_NSS_PIN GPIO_Pin_6
#define SPI_NSS_PORT GPIOF
#define SPI_NSS_CLK RCC_AHB1Periph_GPIOF
void SPI_InitConfig(void)
{
SPI_InitTypeDef SPI_InitStruct;
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHB1PeriphClockCmd(SPI_CLK|SPI_MOSI_CLK|SPI_MISO_CLK|SPI_NSS_CLK,ENABLE);
RCC_AHB2PeriphClockCmd(SPI5_CLK,ENABLE);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Pin = SPI_CLK_PIN;
GPIO_Init(SPI_CLK_PORT, &GPIO_InitStruct);
GPIO_PinAFConfig(SPI_CLK_PORT,GPIO_PinSource7,GPIO_AF_SPI5);
/*GPIO configuration used as DO*/
GPIO_InitStruct.GPIO_Pin = SPI_MISO_PIN;
GPIO_Init(SPI_MISO_PORT, &GPIO_InitStruct);
GPIO_PinAFConfig(SPI_MISO_PORT,GPIO_PinSource8,GPIO_AF_SPI5);
/*GPIO configuration used as DIO*/
GPIO_InitStruct.GPIO_Pin = SPI_MOSI_PIN;
GPIO_Init(SPI_MOSI_PORT, &GPIO_InitStruct);
GPIO_PinAFConfig(SPI_MOSI_PORT,GPIO_PinSource9,GPIO_AF_SPI5);
/*GPIO configuration used as NSS*/
GPIO_InitStruct.GPIO_Pin = SPI_NSS_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_Init(SPI_NSS_PORT, &GPIO_InitStruct);
/*pull NSS signal to HIGH,deactive*/
// PULL_SPI5_NSS_HIGH;
/*SPI configuration*/
SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
SPI_InitStruct.SPI_CPHA = SPI_CPHA_2Edge;
SPI_InitStruct.SPI_CPOL = SPI_CPOL_High;
SPI_InitStruct.SPI_CRCPolynomial = 7;
SPI_InitStruct.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStruct.SPI_Mode = SPI_Mode_Master;
SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStruct.SPI_NSS = SPI_NSS_Soft;
SPI_Init(SPI5, &SPI_InitStruct);
/*enable SPI5*/
SPI_Cmd(SPI5,ENABLE);
}
|
|