[STM32F0] STM32F051c8t6, 晶振管脚 OSC_IN和OSC_OUT 配置为 普通IO电压过低!!

[复制链接]
5037|7
 楼主| 960944837 发表于 2016-4-28 15:26 | 显示全部楼层 |阅读模式
    芯片有两个 时钟引脚 , OSC_IN和OSC_OUT与OSC32_IN和OSC32_OUT,我把这4个引脚 接按键,接地。
其中OSC32_IN和OSC32_OUT用,下配置,正确读取按下的时候为低,没按下内部正常上拉到3.3V。
        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_15;
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;
        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_2;
        GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_Init(GPIOC, &GPIO_InitStruct);
  但是OSC_IN和OSC_OUT这两个引脚,同样配置,出来测得电压只有1.8V,没有正常上拉,改为输出模式也没有上拉到3.3,按键有无按下都是 低电平,没想到在按键配置这里碰到坎,求助了!
    提一下,我外部硬件添加一个复位电路来给OSC_IN和OSC_OUT这两个引脚送电平,外部引脚测试对了,读取到的引脚值却不是 测到的  0v-3.3V,还是烦人的 1.8.
seawwh 发表于 2016-5-1 16:55 | 显示全部楼层

关键是下面的语句
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;  
cnb12345 发表于 2016-5-2 12:11 | 显示全部楼层
tangmin79 发表于 2016-5-23 14:33 | 显示全部楼层
取消RCC CR寄存器中HSEON标志。
RCC->CR &= ~((uint32_t)RCC_CR_HSEON);
此时管脚直接当GPIO口操作即可。
mdwct 发表于 2016-6-1 22:01 | 显示全部楼层
tangmin79 发表于 2016-5-23 14:33
取消RCC CR寄存器中HSEON标志。
RCC->CR &= ~((uint32_t)RCC_CR_HSEON);
此时管脚直接当GPIO口操作即可。 ...

实际测试过么?取消HSEON后,配置PF0为输入引脚,不停读取PF0状态发现会出现0,1跳动。外部实际是接了上拉电阻,通过示波器观察的话,PF0恒定为高电平。
 楼主| 960944837 发表于 2016-6-24 09:49 | 显示全部楼层
引脚复用为普通IO后,禁用外部时钟HSE,用的是库在void SystemInit (void)中仔细寻找哪里开启了时钟,我就是关闭后又开了,SetSysClock();函数又开了时钟导致没解决,现在已解决。
 楼主| 960944837 发表于 2016-6-24 09:57 | 显示全部楼层
tangmin79 发表于 2016-5-23 14:33
取消RCC CR寄存器中HSEON标志。
RCC->CR &= ~((uint32_t)RCC_CR_HSEON);
此时管脚直接当GPIO口操作即可。 ...

引脚复用为普通IO后,禁用外部时钟HSE,用的是库在void SystemInit (void)中仔细寻找哪里开启了时钟,我就是关闭后又开了,SetSysClock();函数又开了时钟导致没解决,现在已解决。
sky.sun.zz 发表于 2016-6-24 11:52 | 显示全部楼层
OSC32_IN没有上拉,不应该设成 GPIO_InitStruct.GPIO_OType = GPIO_OType_PP
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

18

帖子

0

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