打印
[STM32F1]

STM32F105VCT PC13/PC14/PC15引脚做GPIO输出 问题请教

[复制链接]
4392|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fsmith|  楼主 | 2014-6-19 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    最近在用stm32f105芯片,PC13与TAMPER-RTC公用一个引脚, PC14与OSC32_IN公用一个引脚,PC15与OSC32_OUT公用一个引脚,没有注意到PC13/PC14/PC15三个引脚有特殊性,现想应用这三个脚作为GPIO口输出,一直高低电平无法变换,请帮忙支持一下,谢谢!

       我们的做法是:

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);//开C口时钟,复用时钟。
   GPIO_InitTypeDef GPIO_InitStructure;//设为输出 注意:2MHZ
  GPIO_InitStructure.GPIO_Pin =   GPIO_Pin_12|GPIO_Pin_13 |GPIO_Pin_14 | GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;           
GPIO_Init(GPIOC, &GPIO_InitStructure);
PWR_BackupAccessCmd(ENABLE);//允许修改RTC 和后备寄存器
RCC_LSEConfig(RCC_LSE_OFF);//关闭外部低速外部时钟信号功能 后,PC13 PC14 PC15 才可以当普通IO用。
BKP_TamperPinCmd(DISABLE);//关闭入侵检测功能,也就是 PC13,也可以当普通IO 使用
  GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_SET);

  GPIO_WriteBit(GPIOC, GPIO_Pin_14, Bit_SET);
  GPIO_WriteBit(GPIOC, GPIO_Pin_15, Bit_SET);

  GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_RESET);

  GPIO_WriteBit(GPIOC, GPIO_Pin_14, Bit_RESET);
  GPIO_WriteBit(GPIOC, GPIO_Pin_15, Bit_RESET);


这样仍然没有电平转化,请帮忙给分析一下那些设置有问题,十分感谢
沙发
steven888888| | 2014-6-22 15:54 | 只看该作者

使用特权

评论回复
板凳
airwill| | 2014-6-23 18:24 | 只看该作者
手册上说:
当LSE振荡器关闭时,LSE振荡器引脚OSC32_IN/OSC32_OUT可以分别用做GPIO的PC14/PC15,LSE功能始终优先于通用I/O口的功能。
建议使用调试器跟踪进入, 看看这些设置有没有设置成功吧

使用特权

评论回复
地板
mmuuss586| | 2014-6-23 19:47 | 只看该作者
在这段程序前面,有什么地方初始化过吗???
默认好像是关闭的,可以用官方例程测试下;

使用特权

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

本版积分规则

1

主题

1

帖子

1

粉丝