
![]() 问题不是很好描述,慢慢写吧 因为引脚紧张,又不用LSE,把OSC32 in out 两个口利用起来,其中OSC32 out配置为外部中断,用于NRF24的收发通知。 问题来了,用定时器,每0.5秒发1次数据,但上电发送若干次后,晶振仿佛变慢了,从上图可以看出,要6,7秒才发一次(仍然发送成功),而且间隔没规律,有时候是6点多秒,有时候是7点多,没有相同的。 在变慢后循环检查RCC_CR 17位,一直为1,说明HSE是就绪的;重新配置晶振为HSI,问题消失,从逻辑分析仪看,内部晶振还是比较准的。 怀疑铁壳晶振不佳,换了个铁壳晶振依然,好在当初打板时预留了贴片晶振,用了个espon的8M,问题还在那里。 从手册上看到这么一段:PC15 就是 OSC32 out口 PC13, PC14 and PC15 are supplied through the power switch. Since the switch only sinks a limited amount of current (3 mA), the use of GPIOs PC13 to PC15 in output mode is limited: - The speed should not exceed 2 MHz with a maximum load of 30 pF. - These GPIOs must not be used as current sources (e.g. to drive an LED). 将PC15重新配置为2m speed,问题依然。而且故障很随机,有时候是上电就变慢,有时候是上电过一会才变慢。 不得已废掉一个PF7来做外部中断,飞线,问题解决,换铁壳晶振,也正常。 结论:根本原因我是分析不出来的,但一般建议没用到LSE,又想利用OSC32的工程师,A,要么用HSI,B,要用到HSE的话,要注意这个外部中断问题,当然,配置为一般2M口是没问题的,不过手册那段英文也说了,即使推挽,也只有3ma电流,不要用于直接驱动LED。 |
做输入还勉强,输出还是免了 |