|
发表于 2020-11-19 09:32:37
|
显示全部楼层
本帖最后由 neroxps 于 2020-11-19 09:37 编辑
我感觉会不会是代码有问题.
试了一个星期,发现丢消息了
看了下代码是用这个来获取 Serial.readStringUntil('\n')
问了下高人,高人说这个不靠谱,让我参考下用 ESPHOME 的做法. https://esphome.io/components/text_sensor/uart.html
用 read() 每字节写入到缓冲区内,然后判断是否换行,遇到换行开始判断数据是否符合要求,不符合就把缓冲区的POS置零,重新read()
数据解析必须在一个时间单位周期内处理完毕,不可到下一个周期,否则数据会出现乱码.
最近参考了下 tuya 的esphome 传感器做法在重写.
才学的C++ 不知道能不能搞出来~
|
|