3089|4

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于ESP32 micropython的串口使用问题—多谢! [复制链接]

 

请问各位高手:ESP32的micropython串口接收到2个字节时,用any( ),返回值是2,然后用read()读出,继续又接收了3个字节时,any()返回值是5,问题是:any()返回值 不会因为用了read()后而重新复位计数  而是累计接收的字节数!这样就给串口接收数据处理带来不便,实际应用是:串口接收一个完整的数据帧8个字节,read()读出,然后又接到8个字节完整数据帧,如果此时用read()读出却是包含第一个数据帧的字节,处理非常不便,不知有没有好的办法 使串口接收的buf复位 重新计数? 多谢!

最新回复

分号也是不必要的,建议去掉   详情 回复 发表于 2020-10-4 14:13
点赞 关注
 
 

回复
举报

1万

帖子

25

TA的资源

版主

沙发
 

any()返回的是缓冲区中数据的数量,用read()读取后会自动清零的。不知道你具体的应用方式,是否因为read()和any()之间间隔时间太长,造成有新的数据存入。

 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
dcexpert 发表于 2020-10-4 11:31 any()返回的是缓冲区中数据的数量,用read()读取后会自动清零的。不知道你具体的应用方式,是否因为read() ...

感谢回复:我水平有限  请看下面的代码,我测试时 就出现我所说的样子

from machine import UART

uart1= UART(1, baudrate=9600, rx=13,tx=12,timeout=10)

b=0;
a=0;

while 1:
       if (uart1.any()):
        a=uart1.read;
        b=uart1.any();      

        uart1.write(str(b));      

 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

4
 
yanruiqi5678 发表于 2020-10-4 11:47 感谢回复:我水平有限  请看下面的代码,我测试时 就出现我所说的样子 from machine import UART ...

不好意思!read后面应带上(),写成read()才正确,改过后 就如同您说的样子了!多谢! 

点评

分号也是不必要的,建议去掉  详情 回复 发表于 2020-10-4 14:13
 
 
 

回复

1万

帖子

25

TA的资源

版主

5
 
yanruiqi5678 发表于 2020-10-4 11:50 不好意思!read后面应带上(),写成read()才正确,改过后 就如同您说的样子了!多谢! 

分号也是不必要的,建议去掉

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表