diff --git a/my_error/README.md b/my_error/README.md index 1ebd6ab..d957791 100644 --- a/my_error/README.md +++ b/my_error/README.md @@ -103,7 +103,7 @@ MSH_CMD_EXPORT(ringbuffer_example, ringbuffer example); ## 使用红外线导致lcd闪烁? ### 问题描述 -没使用软件包时可以正常运行,使用红外线后lcd闪烁,只是变黑,lcd上面的内容在变亮之后不受影响 +没使用软件包时可以正常运行,使用红外线后lcd闪烁,甚至是在按下红外按键后才闪,屏幕变黑,等变亮后lcd上面的内容不受影响 ### 简单的心路历程 1. 估计是lcd背光有问题 找到原理图,搜索lcd,经了解**LCD_BL**是背光引脚 @@ -113,10 +113,19 @@ MSH_CMD_EXPORT(ringbuffer_example, ringbuffer example); 参考下图,得出针脚与原理图的对应关系![针脚与原理图的对应关系图](image-6.png) [出处链接](https://item.szlcsc.com/2507.html) 用电压表测量3号针脚和地的电压,果然随着屏幕闪烁,一时有数值,一时接近0 - 并用镊子短接2,3,果然屏幕可以常量了 + 并用镊子短接2,3,果然屏幕可以常亮了,明确了是屏幕背光问题。 2. 红外线程序中调了屏幕背光? 然而相应的lcd函数,在红外线的代码中竟完全搜不到 去看红外的原理图,同时也在配置中发现两者在芯片的pin相邻(20,21),难道硬件有问题? ![原理图相邻的脚](image-7.png) 经过我仔细观察(放弃了),又是和上一次一样一通搜索,用电压表测得红外只在接收到信号时,电压才有些改变,不随着屏幕闪烁,看来又不是这个问题了 +3. 尝试注释掉红外相关的代码 + 还是闪,看到红外相关的驱动代码,注释掉`INIT_APP_EXPORT(nec_decoder_register);`等初始化就运行的代码,才不闪,虽然不闪了,但也不能用红外了,那不白干了 +4. 查看config配置 + 发现我没有用到的发送的部分我也使能了,尝试关掉看看是否改善,还是没有。里面有timer的选项,和PWM一起引起我们的注意,然而红外是timer14,LCD是timer3?(忘记在哪里,甚至一开始还找不到lcd的),八竿子打不着啊。让我们很疑惑。打算放弃,寻找其它软件包,似乎没有找到,而借用Arduino的似乎也不容易。与此同时,我碰运气般地修改红外线的timer为timer11。 +5. 再看历程的说明 + ![alt text](image-10.png) + ![alt text](image-9.png) + ![alt text](image-8.png) + 终于发现他俩**用的同一个pwm**,修改为timer11,也最终可以正常运行了 diff --git a/my_error/image-10.png b/my_error/image-10.png new file mode 100644 index 0000000..1298c77 Binary files /dev/null and b/my_error/image-10.png differ diff --git a/my_error/image-8.png b/my_error/image-8.png new file mode 100644 index 0000000..63c37d7 Binary files /dev/null and b/my_error/image-8.png differ diff --git a/my_error/image-9.png b/my_error/image-9.png new file mode 100644 index 0000000..832ab64 Binary files /dev/null and b/my_error/image-9.png differ