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

STM32F207的SPI配置问题!!!!!!!!

[复制链接]
liu_wenju 提问时间:2011-11-30 17:07 /
 在调试207的SPI过程中遇到了一个奇怪的问题,求助于各位大侠了
在调试过程中发现,stm32f207的SPI口中所有的输入口好像都不工作,输出口工作正常,不知道什么原因
SPI口配置代码如下:
       GPIO_InitTypeDef GPIO_InitStructure;
 
        SPI_InitTypeDef  SPI_InitStructure;       
 
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
       
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource5,GPIO_AF_SPI1);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource6,GPIO_AF_SPI1);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource7,GPIO_AF_SPI1);       
 
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;       
        GPIO_InitStructure.GPIO_OType =GPIO_OType_PP;
        GPIO_InitStructure.GPIO_Pin = IO_PIN_BUS_CS;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
        GPIO_Init(IO_PORT_BUS_CS,&GPIO_InitStructure);
 
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType =GPIO_OType_PP; 
        GPIO_InitStructure.GPIO_Pin = IO_PIN_BUS_MISO;
        GPIO_Init(IO_PORT_BUS_MISO,&GPIO_InitStructure);
 
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;       
        GPIO_InitStructure.GPIO_Pin = IO_PIN_BUS_SCK;
        GPIO_Init(IO_PORT_BUS_SCK,&GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = IO_PIN_BUS_MOSI;
        GPIO_Init(IO_PORT_BUS_MOSI,&GPIO_InitStructure);
       
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
        SPI_InitStructure.SPI_CRCPolynomial = 0;
        SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
        SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
        SPI_InitStructure.SPI_Mode = SPI_Mode_Slave;
        SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
        SPI_Init(SPI1, &SPI_InitStructure);
 
        SPI_CalculateCRC(SPI1, DISABLE);
 
            NVIC_InitTypeDef NVIC_InitStructure;          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
            NVIC_InitStructure.NVIC_IRQChannel = SPI1_IRQn;
            NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0 ;
            NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2 ;
           NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
           NVIC_Init(&NVIC_InitStructure);       
        wvSpiItEnable();
       
        SPI_Cmd(SPI1,ENABLE);
期待得到答案,重复问题:spi口的输入性质的口好像都不工作,时钟和输入口都没工作 ,望高手帮我看看,期待。。。。。。
 
收藏 评论9 发布时间:2011-11-30 17:07

举报

9个回答
废鱼 回答时间:2011-11-30 21:06:20

RE:STM32F207的SPI配置问题!!!!!!!!

SPI的时钟开启了吗?需要你在配置的时候打开。
liu_wenju 回答时间:2011-12-1 08:37:54

回复:STM32F207的SPI配置问题!!!!!!!!

回复第 2 楼 于2011-11-30 13:06:20发表:
SPI的时钟开启了吗?需要你在配置的时候打开。
在代码的第三行就开启了,谢谢你的回答,问题还是没找到。
 
废鱼 回答时间:2011-12-1 09:47:06

RE:STM32F207的SPI配置问题!!!!!!!!

看不到你的IO口的配置,你能把IO_PIN_BUS_CS这些定义写出来吗?
liu_wenju 回答时间:2011-12-1 10:16:23

回复:STM32F207的SPI配置问题!!!!!!!!

回复第 4 楼 于2011-12-01 01:47:06发表:
看不到你的IO口的配置,你能把IO_PIN_BUS_CS这些定义写出来吗?
GPIO_InitTypeDef GPIO_InitStructure;
 
SPI_InitTypeDef  SPI_InitStructure;
 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
 
 
GPIO_PinAFConfig(GPIOA,GPIO_PinSource5,GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource6,GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource7,GPIO_AF_SPI1);
 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType =GPIO_OType_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType =GPIO_OType_PP; 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_Init(GPIOA,&GPIO_InitStructure);
 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_Init(GPIOA,&GPIO_InitStructure);
 
 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIOA,&GPIO_InitStructure);
 
 
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CRCPolynomial = 0;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_Mode = SPI_Mode_Slave;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_Init(SPI1, &SPI_InitStructure);
 
SPI_CalculateCRC(SPI1, DISABLE);
 
 NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);               NVIC_InitStructure.NVIC_IRQChannel = SPI1_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0 ;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2 ;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
 
SPI_I2S_ITConfig(SPI1, SPI_I2S_IT_RXNE, ENABLE);
SPI_I2S_ITConfig(SPI1, SPI_I2S_IT_ERR, ENABLE);
 

 
SPI_Cmd(SPI1,ENABLE);
 
谢谢管理员不辞辛苦的回答,非常感谢!

 
liu_wenju 回答时间:2011-12-1 10:18:04

回复:STM32F207的SPI配置问题!!!!!!!!

回复第 4 楼 于2011-12-01 01:47:06发表:
看不到你的IO口的配置,你能把IO_PIN_BUS_CS这些定义写出来吗?
忘了说了,这个IO_PIN_BUS_CS,即NSS引脚,我没有复用,只是当做普通IO口使用的。谢谢
 
废鱼 回答时间:2011-12-1 16:13:14

RE:STM32F207的SPI配置问题!!!!!!!!

NSS主要是用来告诉从机要开始SPI通讯了,如果这个都不用,SPI通许将失败。
火雷达 回答时间:2011-12-1 21:39:39

RE:STM32F207的SPI配置问题!!!!!!!!

应该是从机没有工作
liu_wenju 回答时间:2011-12-5 19:13:36

回复:STM32F207的SPI配置问题!!!!!!!!

 谢谢大家的回答,问题已解决。是因为引脚设置不对。
Louis-moon 回答时间:2015-6-10 14:45:06
liu_wenju 发表于 2011-12-5 19:13
 谢谢大家的回答,问题已解决。是因为引脚设置不对。

请问楼主,哪里没设置对,我也遇见这个问题了,很急
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版