[STM32F0] STM32F0库函数有错误吗?

[复制链接]
1424|5
 楼主| mjw001 发表于 2016-10-1 19:12 | 显示全部楼层 |阅读模式
本帖最后由 mjw001 于 2016-10-1 21:32 编辑

请教一下大家,为什么我的代码在执行GPIO_PinAFConfig()库函数时总是跑飞呢?芯片是STM32F030C8T6,环境是MDK+ST_Link 代码如下
  1.   GPIO_InitTypeDef GPIO_InitStructure;
  2.     SPI_InitTypeDef SPI_InitStructure;
  3.    
  4.     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB,ENABLE);
  5.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);
  6.    
  7.     GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
  8.     GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
  9.     GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
  10.     GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  11.    
  12.     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;
  13.     GPIO_Init(GPIOB,&GPIO_InitStructure);
  14.     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14;
  15.     GPIO_Init(GPIOB,&GPIO_InitStructure);
  16.     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;
  17.     GPIO_Init(GPIOB,&GPIO_InitStructure);
  18.    
  19. //    GPIO_PinAFConfig(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15,GPIO_AF_0);
  20.     GPIO_PinAFConfig(GPIOB,GPIO_Pin_13,GPIO_AF_0);
  21.     GPIO_PinAFConfig(GPIOB,GPIO_Pin_14,GPIO_AF_0);
  22.     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);楼主不可以这样用,这样是错误的,研究函数你就明白错在哪里,参考官方的用法就不会出现如此低级错误
cch73cch 发表于 2016-10-3 09:03 | 显示全部楼层
你这里选择SPI2   -->  RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);
但是IO脚位却选用SPI1
当然会有问题
xmshao 发表于 2016-10-9 16:29 | 显示全部楼层
关于复用脚的AF选择,芯片数据手册里有个表格你确认下;

另外,你是用的ST传统库,注意F0库里的GPIO_PinSource2 与 GPIO_Pin_2 是不一样的,经常有人这里弄混;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

71

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部