首先看一下库函数编程下我们的操作:
GPIO_Port.GPIO_Mode = GPIO_Mode_IN_FLOATING;//模式
GPIO_Port.GPIO_Pin = GPIO_Pin_6; //引脚
GPIO_Port.GPIO_Speed = GPIO_Speed_50MHz;//速度
GPIO_Init(GPIOA,&GPIO_Port);//MISO
GPIO_Port.GPIO_Mode = GPIO_Mode_AF_PP;//模式
GPIO_Port.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_5; //引脚
GPIO_Port.GPIO_Speed = GPIO_Speed_50MHz;//速度
GPIO_Init(GPIOA,&GPIO_Port);//MOSI
在库函数编程下我们将MISO(主收从发)设置为浮空输入模式,MOSI(主发从收)设置为了复用推挽输出,这点很好理解,也是大家对于STM32经常的操作。
下面我们看一下HAL库编程下的代码:
/**SPI2 GPIO Configuration
PC2 ------> SPI2_MISO
PC3 ------> SPI2_MOSI
*/
GPIO_InitStruct.Pin = SPI2_MISO_Pin|SPI2_MOSI_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;