ESP32IDF驱动大彩串口屏一些注意点

最近做ESP32采集modbus设备上数据在大彩串口屏上显示,因为有几个页面要显示的数据很多,同时又有按键,中文文本等,要求刷新要快,要不然影响客户体验。

问题一

刚开始esp32上用的485口结果就是按键和客户输入的文本有丢失,后来才想起485是半双工的,大量数据密集往串口屏发送,结果就是串口屏发送出来的数据esp32实际收不到,或者偶尔收到。后面改接口为232,之前画板的时候不用232,主要是以前用廉价的max232经常损坏,不太敢使用。网上买了一些便宜的几块的232模块,竟然通信不了,能收发,但莫名一会就会发热惊人,通信不上,后来再买十几块那种232模块,一换就正常。换到232,串口全双工工作了,既可以密集更新控件数据,又可以响应屏幕输入的数据。

问题二

屏幕显示由于有正常刷新的传感器数据,有一些中文的信息,还有大量的配置数据等待用户输入,刚开始大概率会在一些控件出现乱码,中英文下都一样,发送数据的地方加了延时不会很常出现,但也会出现,这样肯定不行,一影响体验,二出现乱码(老板说会让人认为我们不专业)。由于系统是esp32+freertos,各种信息是在不同线程上用同一个串口发送数据,这样就很又可能一个线程没发送完成另一个线程又发送了。而且发送的buf不是队列那种,需要发送的时候往buf里写数据,然后调用esp32的发送api。其实这种一开始就应该采用互斥的做法对串口发送加锁。同一个硬件(比如UART、I2C等)被多个任务访问的情况比较多,如果不合理处理,就会导致“混乱”的局面。最后给串口加锁,测试过程基本没怎么看过乱码的现象出现。

参考:
链接: link

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值