打印
[STM32F4]

STM32F429II 的SPI3--MOSI求助

[复制链接]
2496|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
longquanboy|  楼主 | 2015-3-12 13:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    现在用STM32F429II的SPI3驱动数码管,发现其MOSI输出引脚配置至PD6时无输出(AF功能),配置至PC12或者PB5时均可正常输出,GPIO_D的时钟也是配置了。现在程序中其它功能均已经取消,只有SPI3了,MOSI配置至PD6还是无法输出。由于PC12要用于SD卡,所以才把MOSI配置至PD6上,现确实有点摸不着头了,不知是否有哪位大吓有过类似的问题,请指教,谢谢。
            GPIO_InitTypeDef GPIO_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;

       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);//SPI3
       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);


        GPIO_InitStructure.GPIO_Pin                =        GPIO_Pin_10;//CLK
        GPIO_InitStructure.GPIO_Mode        =        GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed        =        GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_OType        =        GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd          =         GPIO_PuPd_DOWN;
        GPIO_Init(GPIOC,&GPIO_InitStructure);
        GPIO_InitStructure.GPIO_Pin                =        GPIO_Pin_6;//MOSI
        GPIO_Init(GPIOD,&GPIO_InitStructure);


        GPIO_PinAFConfig(GPIOC,GPIO_PinSource10,GPIO_AF_SPI3);//SPI3_CLK        PC10
        GPIO_PinAFConfig(GPIOD,GPIO_PinSource6,GPIO_AF_SPI3);//SPI3_MOSI        PD6


        NVIC_InitStructure.NVIC_IRQChannel = SPI3_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);

        SPI_CalculateCRC(SPI3, DISABLE);
        SPIConfigReg(SPI3);//,SPI_CPOL_Low);       
        SPI_ITConfig(SPI3,SPI_I2S_IT_RXNE,ENABLE);
        SPI_Cmd(SPI3,ENABLE);
沙发
longquanboy|  楼主 | 2015-3-18 15:00 | 只看该作者
都没有人遇到这问题啊?还是本身ARM的BUG哦

使用特权

评论回复
板凳
airwill| | 2015-3-18 15:46 | 只看该作者
程序很规范, 设置也正规. 不要轻易怀疑芯片的 BUG 问题.
用调试器进去看看吧, 端口到底设置有没有问题.

使用特权

评论回复
地板
amanda_s| | 2015-3-18 17:11 | 只看该作者
airwill 发表于 2015-3-18 15:46
程序很规范, 设置也正规. 不要轻易怀疑芯片的 BUG 问题.
用调试器进去看看吧, 端口到底设置有没有问题. ...

楼上说的很对。
楼主仔细看下dataseet吧,PD6和PC12配置alternate function的配置是不一样的。一个是AF5,一个是AF6.

使用特权

评论回复
5
foxglove| | 2015-3-19 08:30 | 只看该作者
STM32F429II的SPI3驱动数码管,发现其MOSI输出引脚配置至PD6时无输出(AF功能)
关注

使用特权

评论回复
6
zchong| | 2015-3-19 08:56 | 只看该作者
PD6设置成IO口,输出看看是否正常,先确定一下硬件没有问题
然后就仔细核对一下初始化的东西,时钟、io口配置等

使用特权

评论回复
7
longquanboy|  楼主 | 2015-3-23 17:21 | 只看该作者
zchong 发表于 2015-3-19 08:56
PD6设置成IO口,输出看看是否正常,先确定一下硬件没有问题
然后就仔细核对一下初始化的东西,时钟、io口配 ...

非常感谢你的回复,该引脚配置为IO端口时能输出的

使用特权

评论回复
8
longquanboy|  楼主 | 2015-3-23 17:32 | 只看该作者
amanda_s 发表于 2015-3-18 17:11
楼上说的很对。
楼主仔细看下dataseet吧,PD6和PC12配置alternate function的配置是不一样的。一个是AF5 ...

感谢你的回复,我查了数据手册,PD6的引脚确实是分配至AF6(SPI3/SAI1)上,AF5上的是SPI1/2/4/5/6,并且也通过JTAG查看了GPIO-D寄存器以及AFRL寄存器,确实也分配成功了,RCC时钟同样使能了,还是没有弄出来,现在是通过飞线连接至SPI2上使用。

使用特权

评论回复
9
longquanboy|  楼主 | 2015-3-23 17:33 | 只看该作者
airwill 发表于 2015-3-18 15:46
程序很规范, 设置也正规. 不要轻易怀疑芯片的 BUG 问题.
用调试器进去看看吧, 端口到底设置有没有问题. ...

非常感谢你的回复,我在看看是否哪里配置失败了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

44

帖子

1

粉丝