你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f207vc spi1时钟无法输出

[复制链接]
tianjianlv-1178 提问时间:2013-12-21 15:36 /
控制stm32F207vc开发板中的spi1(master),无法输出clock,请教大侠们!
#ifdef OpenSPI1
        #define Open207V_SPIx                           SPI1
 
        #define Open207V_SPIx_CLK                       RCC_APB2Periph_SPI1
        #define Open207V_SPIx_IRQn                      SPI1_IRQn
        #define Open207V_SPIx_IRQHANDLER                SPI1_IRQHandler
       
        #define Open207V_SPIx_SCK_PIN                   GPIO_Pin_5
        #define Open207V_SPIx_SCK_GPIO_PORT             GPIOA
        #define Open207V_SPIx_SCK_GPIO_CLK              RCC_AHB1Periph_GPIOA
        #define Open207V_SPIx_SCK_SOURCE                GPIO_PinSource5
        #define Open207V_SPIx_SCK_AF                    GPIO_AF_SPI1
       
        #define Open207V_SPIx_MISO_PIN                  GPIO_Pin_6
        #define Open207V_SPIx_MISO_GPIO_PORT            GPIOA
        #define Open207V_SPIx_MISO_GPIO_CLK             RCC_AHB1Periph_GPIOA
        #define Open207V_SPIx_MISO_SOURCE               GPIO_PinSource6
        #define Open207V_SPIx_MISO_AF                   GPIO_AF_SPI1
       
        #define Open207V_SPIx_MOSI_PIN                  GPIO_Pin_5
        #define Open207V_SPIx_MOSI_GPIO_PORT            GPIOB
        #define Open207V_SPIx_MOSI_GPIO_CLK             RCC_AHB1Periph_GPIOB
        #define Open207V_SPIx_MOSI_SOURCE               GPIO_PinSource5
        #define Open207V_SPIx_MOSI_AF                   GPIO_AF_SPI1
#endif
 
初始化函数如下:
{
SPI_InitTypeDef SPI_InitStruct;         
        GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_AHB1PeriphClockCmd(Open207V_SPIx_SCK_GPIO_CLK | Open207V_SPIx_MISO_GPIO_CLK | Open207V_SPIx_MOSI_GPIO_CLK,ENABLE);
        #ifdef OpenSPI1
                RCC_APB2PeriphClockCmd(Open207V_SPIx_CLK,ENABLE);
        #else
                RCC_APB1PeriphClockCmd(Open207V_SPIx_CLK,ENABLE);
        #endif
       
        GPIO_PinAFConfig(Open207V_SPIx_SCK_GPIO_PORT, Open207V_SPIx_SCK_SOURCE,  Open207V_SPIx_SCK_AF);
        GPIO_PinAFConfig(Open207V_SPIx_MISO_GPIO_PORT, Open207V_SPIx_MISO_SOURCE, Open207V_SPIx_MISO_AF);
        GPIO_PinAFConfig(Open207V_SPIx_MOSI_GPIO_PORT, Open207V_SPIx_MOSI_SOURCE, Open207V_SPIx_MOSI_AF);
       
        GPIO_InitStructure.GPIO_Pin = Open207V_SPIx_SCK_PIN;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_DOWN;  
        GPIO_Init(Open207V_SPIx_SCK_GPIO_PORT, &GPIO_InitStructure);
 
        GPIO_InitStructure.GPIO_Pin = Open207V_SPIx_MISO_PIN;
        GPIO_Init(Open207V_SPIx_MISO_GPIO_PORT, &GPIO_InitStructure);
 
        GPIO_InitStructure.GPIO_Pin = Open207V_SPIx_MOSI_PIN;
        GPIO_Init(Open207V_SPIx_MOSI_GPIO_PORT, &GPIO_InitStructure);
 
        SPI_I2S_DeInit(Open207V_SPIx);
        SPI_InitStruct.SPI_Direction= SPI_Direction_2Lines_FullDuplex;
        SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b; 
        SPI_InitStruct.SPI_Mode = SPI_Mode_Master;
        SPI_InitStruct.SPI_CPOL = SPI_CPOL_Low ;
        SPI_InitStruct.SPI_CPHA = SPI_CPHA_1Edge;
        SPI_InitStruct.SPI_NSS = SPI_NSS_Soft ;
        SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_128;
        SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;
        SPI_InitStruct.SPI_CRCPolynomial = 7;
        SPI_Init(Open207V_SPIx, &SPI_InitStruct);
 
        SPI_Cmd(Open207V_SPIx, ENABLE);

}
如果我将SPI1_SCK引脚换成PB3的功能引脚,则有clock输出,很奇怪为什么PA5这个引脚无法输出clock,已经确定该引脚没有复用,看了下手册该引脚IO结构是TTa的,不知道是啥意思?
收藏 评论5 发布时间:2013-12-21 15:36

举报

5个回答
dzc2001 回答时间:2013-12-24 20:06:04

RE:stm32f207vc spi1时钟无法输出

会不会是你的那个引脚坏了,没有换一片试试?
勒布朗 回答时间:2013-12-24 20:39:39

RE:stm32f207vc spi1时钟无法输出

单步仿真,用示波器观察,不然就是硬件的问题
Hiker天下 回答时间:2013-12-25 00:12:54

RE:stm32f207vc spi1时钟无法输出

只有时钟放慢点用示波器看下就知道了。
fengye5340 回答时间:2013-12-25 09:23:05

回复:stm32f207vc spi1时钟无法输出

STM32有的引脚是可以承受5V的电压的,这个引脚就用FT来标示,如果是正常的引脚,仅能承受最高的3.6V,一般用TT来标示。
一般用SPI接口的时候,SCK引脚线最好用电阻上拉一下,如果你确定你的引脚没有损坏的话,再上面加个10K的上拉再测试一下。
有缘于你 回答时间:2013-12-25 18:46:13

RE:stm32f207vc spi1时钟无法输出

很可能硬件坏了,先单步调试看看波形吧

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版