watercici 发表于 2019-2-13 15:35:07

SPI中的MOSI和MISO这两个引脚如何配置?

最近查了一些SPI的IO口配置,发现有些例程并没有对MOSI和MISO这两个引脚进行模式配置,但有些例程会将MISO配置成GPIO_Mode_IPU,而将MOSI配置成GPIO_Mode_AF_PP,还有将二者都配置成GPIO_Mode_AF_PP的。关于这点该如何理解,有相关资料推荐吗?

BG4RFF 发表于 2019-2-13 15:53:07

这个是HAL库F103C8的SPI2初始化
    /**SPI2 GPIO Configuration   
    PB13   ------> SPI2_SCK
    PB14   ------> SPI2_MISO
    PB15   ------> SPI2_MOSI
    */
    GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_14;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
供瞅瞅

BG4RFF 发表于 2019-2-13 15:54:36

忘了说,这个是主机模式的,如果从机模式估计不同,没试过

watercici 发表于 2019-2-13 15:58:32

BG4RFF 发表于 2019-2-13 15:54
忘了说,这个是主机模式的,如果从机模式估计不同,没试过

谢谢您的回答,我上面说的那些疑问也都是在主机模式下的设置,您的这个设置是我说的里面的其中一种情况。

BG4RFF 发表于 2019-2-13 16:02:30

MISO,是主in从out,所以主机一般设置为input,有些程序在SPI初始化时并不设置这些口,在具体驱动某一个硬件时再初始化,比如驱动W25QXX时再初始化一下这个口线,习惯不同而已

watercici 发表于 2019-2-13 17:04:34

BG4RFF 发表于 2019-2-13 16:02
MISO,是主in从out,所以主机一般设置为input,有些程序在SPI初始化时并不设置这些口,在具体驱动某一个硬 ...

不好意思,不是你说的这种情况,他就是在进行IO和spi配置的时候并没有对MISO和MOSI的IO口模式进行配置,同时有的都设置成AF_PP模式,有的向你那样分开配置。所以对于我提出的问题我还是没有得到结论。谢谢您的帮助。
页: [1]
查看完整版本: SPI中的MOSI和MISO这两个引脚如何配置?