Arduino案例实战(卷Ⅳ)
上QQ阅读APP看书,第一时间看更新

2.5 故障及问题分析

问题1:修改DFPlayer Mini MP3播放器的库函数后,无法导入,Arduino IDE显示已存在。

解决方案:起初以为是没有成功删除造成的,查阅资料并未找到原因,后来尝试着重命名,摸索到Arduino IDE对已导入的库函数可能有记忆功能,对导入库的信息应该还在另一个地方有记录,只是不知道地址,所以即使删除原来导入的.zip文件,仍旧不可导入同名文件,需要进行重命名,并且文件开头只能是字母。

问题2:换了一块开发板,用同一个USB口上传程序时,显示找不到开发板。

解决方案:通过查阅资料了解到这个与端口设置有关,于是手动将设备管理器中开发板的端口号由COM5改为COM1,并且将IDE中的端口也改为COM1,问题得以解决。

问题3:软串口调试时,输出乱码,而非代码中的菜单。

解决方案:经过多次调试,估计是中文的问题,于是改成英文,串口即可输出。

问题4:使用ESP8266-01S时,计算机仍然无法识别USB转TTL的转换器。

解决方案:查阅相关的资料,考虑软件不匹配,后来找了几款软件,逐一验证,最终成功找到正确的软件。

问题5:对ESP8266进行透传与自动连接贝壳网的服务器设置后,设备在线状态不稳定。

解决方案:通过查找ESP8266的指令集说明书,对网上提供的参考代码进行逐个学习,了解原理,自行修改为“AT+CWMODE=1”并去掉了“AT+CIPMUX=0”,问题得以解决。

问题6:出现如下情况:

     avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp = 0x00

解决方案:编译成功,但无法上传,重启计算机、插拔多次未得到改善,后来在网上查阅资料了解到:上传时,ESP8266连接到Arduino开发板上的RX与TX需要拔掉再上传。

问题7:程序算法的选择。

解决方案:编程的核心在于DFPlayer Mini的控制,网上可供查阅的资料太少,花了很多时间研究模块的使用,它的核心是通过内置的cmd命令来实现各功能,可以通过串口输入十六进制的4位数来实现,不过需要自行计算校验位等等,后来发现公司自己提供的校验码算法不对,权衡之后,放弃了直接在串口中使用cmd,自行编写修改库函数实现所呈现出的功能,为此付出的代价是舍掉了一些功能,如插播广告等。