打印
[STM32F0]

STM32F0库函数有错误吗?

[复制链接]
1173|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mjw001|  楼主 | 2016-10-1 19:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mjw001 于 2016-10-1 21:32 编辑

请教一下大家,为什么我的代码在执行GPIO_PinAFConfig()库函数时总是跑飞呢?芯片是STM32F030C8T6,环境是MDK+ST_Link 代码如下
  GPIO_InitTypeDef GPIO_InitStructure;
    SPI_InitTypeDef SPI_InitStructure;
   
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB,ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);
   
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
    GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
   
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
   
//    GPIO_PinAFConfig(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15,GPIO_AF_0);
    GPIO_PinAFConfig(GPIOB,GPIO_Pin_13,GPIO_AF_0);
    GPIO_PinAFConfig(GPIOB,GPIO_Pin_14,GPIO_AF_0);
    GPIO_PinAFConfig(GPIOB,GPIO_Pin_15,GPIO_AF_0);
沙发
xyz549040622| | 2016-10-1 22:08 | 只看该作者
看看是从哪句跑飞的了?这个函数的库没用过,有两个疑问
1.GPIO_PinAFConfig(GPIOB,GPIO_Pin_15,GPIO_AF_0);的第三个参数都是一样的吗
2.看你三个Io的IO模式都是一样的,用作SPI的话,应该是有输入和输出,不应该都一样的

使用特权

评论回复
板凳
伏尔加的鱼| | 2016-10-2 07:13 | 只看该作者
别的不敢说,自己玩的时候SPI这部分没问题用着很正常没发现什么问题

使用特权

评论回复
地板
neomissing| | 2016-10-2 08:21 | 只看该作者
本帖最后由 neomissing 于 2016-10-2 08:22 编辑

GPIO_PinAFConfig(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15,GPIO_AF_0);楼主不可以这样用,这样是错误的,研究函数你就明白错在哪里,参考官方的用法就不会出现如此低级错误

使用特权

评论回复
5
cch73cch| | 2016-10-3 09:03 | 只看该作者
你这里选择SPI2   -->  RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);
但是IO脚位却选用SPI1
当然会有问题

使用特权

评论回复
6
xmshao| | 2016-10-9 16:29 | 只看该作者
关于复用脚的AF选择,芯片数据手册里有个表格你确认下;

另外,你是用的ST传统库,注意F0库里的GPIO_PinSource2 与 GPIO_Pin_2 是不一样的,经常有人这里弄混;

使用特权

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

本版积分规则

22

主题

71

帖子

0

粉丝