void SPI_Flash_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4; //SPI CS
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //复用推挽输出
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4);//
上面的代码是SPI实验中的端口初始化,感觉好像有一点点问题哈,先说说我的理解:由MINI版原理图可知,PA2上接的是W25X16、PA3上接的是SD卡、应该是PC4上接的是两个无线模块,也就是说这三个引脚分别是这几个SPI模块的片选信号,引脚只是作为普通的IO口使用。第一个问题:这里是否可以设置成推挽输出?。再就是这里的PA4是根本就没有用到啊!!是不是应该再加上如下代码,并且开启GPIOC的时钟。
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_SetBits(GPIOC,GPIO_Pin_4);
|