492|4

15

帖子

0

资源

一粒金砂(中级)

关于ESP32 micropython的串口使用问题—多谢!

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


回复

1万

帖子

13

资源

版主

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


回复

15

帖子

0

资源

一粒金砂(中级)

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));      


回复

15

帖子

0

资源

一粒金砂(中级)

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

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

点评

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

回复

1万

帖子

13

资源

版主

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

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


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

关闭
站长推荐上一条 1/5 下一条

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

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

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

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