STM32F407 PC13-PC15作为GPIO的方法

2019-07-20 14:57发布

第一次用STM32F407,因为没有用到RTC,无意中将PC-13-PC15作为了普通IO口使用了。接下来悲催的事情发生了,PC13-PC15是很特殊的pin,STM32F103,很多人讨论过怎么设置成GPIO,并且成功了。看STM32F407的资料,说只能有一个作为输出,即便如此我也认了,现在是也搞不定,都设置成输入,是高阻,通过上拉电阻可以得到高电平,设置成输出,则都是低电平,把某一路设置成输出,三路的输出就有点乱套。整个PCB的工程非常大,STM32F407在里面只是辅助功能,所以重新修改设计只能是下次了。因为RTC是需要在低功耗情况下运行的,所以IC设计的时候这些端口的驱动电路都会和普通的IO不一样,前车之鉴呀。哪位大神碰到过类似的问题,还望赐教!现在我的代码是这样的,控制不了输出电平情况。
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC  , ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE);
PWR_BackupAccessCmd(ENABLE);
RCC_LSEConfig(RCC_LSE_OFF);
GPIO_InitStructure.GPIO_Pin =   GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOC, &GPIO_InitStructure);

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。