|
本帖最后由 Super169 于 2014-10-9 23:40 编辑
这个问题我自己也觉得不合理, 不知如果发问, 但就是发生了.
之前因为 upload 程式在 00:00 无突停止, 想加入一个 LED / TFT 去显示状态.
但後奇怪, 加入之後经常无故重启, 结果也是看不到原因 (因为系统不断重启了).
初时以为程式有问题, 就不断把程序简化, 希望看到问题所在.
最後, 简化至只在每秒显示一个数字, 也会出现问题.
由於问题可重复, 经不断测量, 发现竟是每 32.5 秒左右就会重启.
以为是板子出事, 换了两片都是一样, 时间也是一样.
更换了另一片 OLED, 也是一样, 32.5 秒重启一次.
只好怀疑是 OLED 库有问题, 换了另一片 TFT, 用的是 UTFT 库, 结果也是一样.
很莫名其妙, 只要拿走 OLED/TFT 又没有问题了.
之後的发现, 更加奇怪....
当找不到问题, 只好尝试加入 debug code, 用 serial 连线到电脑看吧.
初时只加了一句系意义的 debug code, 只是看看连线, 打开 电脑的 serial monitor...
结果竟然完全无问题, 执行了十多分钟也没重启.
奇怪, debug code 怎会可以解决问题. 之後删走新加入的 debug code, 再试.
同样 32.5 秒凰启...但, 只要我打开电脑的 Serial monitor, 虽然没东西传送, 问题却解决了.
晕了....只要开启 Serial monitor 就不会重启.
怀疑到可能是电源的问题, 就拿出一只 12V 1A 的火牛, 由 DC 供电.
竟然也没问题, 可以一直执行.
现在观察到的结果是:
1) 原来的程式, 用 USB 供电是没问题的.
2) 装上 OLED/TFT 後, 用 USB 供电, 每 32.5 秒就会重启一次
3) 装上 OLED/TFT 後, 用 USB 供电, 打开 Serial monitor 就没问题了
4) 装上 OLED/TFT 後, 转用 DC 供电, 也没有问题.
根据以上观察的结果, 请问有可能猜出是什麽问题吗?
会否因为 OLED / TFT 比较耗电, 单用 USB 供电不足? 用 DC 供电可解决.
但我最不明白是, 为何打开了电脑的 Serial. monitor 也可以解决问题.
|
|