关于STM32SPI引脚配置的问题????

topcool99   2010-1-5 17:00 楼主
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
                         RCC_APB2Periph_SPI1, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
  SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
  SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
  SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;
  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB;
  SPI_InitStructure.SPI_CRCPolynomial = 7;
  SPI_Init(SPI1, &SPI_InitStructure);
    SPI_SSOutputCmd(SPI1, ENABLE);//使能SPI1的SPI1_NSS(PA4)输出
  SPI_Cmd(SPI1, ENABLE);

配置的为主模式,PA6口不是MISO,上面的配置为什么是复用的推挽输出??(GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
)我是一个初学者,还请各位大哥帮帮忙,呵呵。

回复评论 (6)

                                 MISO应该配备为输入
点赞  2010-1-22 15:41
STM32 SPI配置的为主模式,PA6口作为MISO,可以配置成GPIO_Mode_AF_PP,也可以配置成输入,都可以正常工作。类似的USART_RX,也都可以配置成GPIO_Mode_AF_PP或者输入。

这是目前的STM32让人记得迷惑的地方。
点赞  2010-1-22 16:31
从功能上来说,MISO应该配置为输入模式才对,但为什么也可以配置为GPIO_Mode_AF_PP?请看下面的GPIO复用功能配置框图。

当一个GPIO端口配置为GPIO_Mode_AF_PP是,这个端口的内部结构框图如下:图中可以看到,片上外设的复用功能输出信号会连接到输出控制电路,然后在端口上产生输出信号。

但是在芯片内部,MISO是SPI模块的输入引脚,而不是输出引脚,也就是说图中的"复用功能输出信号"根本不存在,因此"输出控制电路"不能对外产生输出信号。

而另一方面看,即使在GPIO_Mode_AF_PP模式下,复用功能输入信号却与外部引脚之间相互连接,既MISO得到了外部信号的电平,实现了输入的功能。

STM32_GPIO_AF_PP.GIF (28.41 KB)

点赞  2010-1-22 18:08
                                 还是很迷惑
点赞  2010-1-22 20:16
                                 明白了,复用功能时,虽然设成输出,但连接的是spi,没有连接输出部分,和输入电路等效
点赞  2010-1-22 23:06
SPI_SSOutputCmd(SPI1, ENABLE);//使能SPI1的SPI1_NSS(PA4)输出
什么作用?
点赞  2010-3-10 14:38
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复