完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我从事一个项目已经有一段时间了,遇到了一个非常不幸的问题。
简而言之: 我将我的旧 Arduino (nano) 项目移植到 ESP8266。该程序为任何 BMW E46 添加了一些功能,例如解锁汽车时的迎宾灯。基础(接收/发送)工作得很好,所以我决定从头开始,为 ESP 实现各种很酷的功能,例如异步网络服务器、OTA (www) 更新、websockets 等等。 在开发过程中,ESP 连接到一个简单的 canbus(准确地说是 kbus,它是一个单线网络)测试平台,并且一直在接收来自我的代码的旧版本的消息,该版本仍在 Arduino 上运行。这段时间一切正常! 但是...当我上周末最终将 ESP 连接到汽车时,汽车不会响应消息。 经过大量测试(和挫折)后,事实证明连接到 kbus 的原始 BMW 模块比 Arduino/ESP 对时序更敏感。一个很好的例子是我车上的 Android 主机,它取代了原厂收音机。它可以很好地响应 ESP 发送的消息,即当我按下 ESP 网络界面中的按钮时,它会增加/降低音量。 然后我决定用常规的非异步/同步网络服务器替换异步网络服务器,问题就消失了。 我的猜测是异步网络服务器导致通过 kbus 发送的位之间的间隔略有不同,导致汽车丢弃消息。收音机和 Arduino/ESP 似乎没什么大不了的,但 OEM BMW 模块却很重要。 kbus 通信是一个 9600 波特的串行网络,具有 8 位、偶校验和 1 个停止位。 我对串行通信的理解是有限的,但也许这里有人对此了解更多,甚至可以提出解决方案,这样我就可以继续使用异步网络服务器。它提供了更多的选项和功能,并且速度更快,更易于使用。 我尝试以 160mhz 模式(而不是 80mhz)运行 ESP,希望它能解决问题,但不幸的是它没有。 我还研究了非常短暂地暂停异步服务器,但没有找到任何东西。(这是有道理的..) 非常感谢与此有关的任何帮助和信息。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
524浏览 6评论
433浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
422浏览 5评论
414浏览 4评论
387浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 06:49 , Processed in 0.726923 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号