[求助] ESP32,Micropython串口发送 write( )的使用问题--多谢!

yanruiqi5678   2020-10-7 11:17 楼主

各位高手,请教下关于ESP32,Micropython串口发送 write( )的使用问题 :

发送需求是:欲发送列表LL中  从索引 0开始计算元素个数为5个 的元素,也就是发送LL[0],LL[1],LL[2],LL[3],LL[4] 这个5个元素(5个元素类型都是0-255之间的数(1个Byte)),多谢!

回复评论 (7)

经测试发现ESP32  micropython串口write(), 无法直接发送 list,bytearray,bytes,元组中的某个元素,只能变成str后才能发送,即:write(str(XXX)),才可以,看到其他例程中出现write(byarry)  byarry是个字节数组对象,但我测试却不行! 不知为何 writechar()这个也无法用,写成 writechar(65)或 writechar('a'),都不能发送!不知为何! 真没有想到 单片机中 最简单的串口发送 用这个micropython却要折腾!

点赞  2020-10-7 13:11

micropython官网 关于串口的文档中 已经没有 writechar() 的介绍了,新的固件已经不支持了!

点赞  2020-10-7 13:48

uart.wrtie(),只能发送str或者bytes类型的数据,如果不是需要先转换。

例如可以这样使用:

 

uart.write(bytes([LL[0],LL[1],LL[2],LL[3],LL[4]]))

点赞 (1) 2020-10-7 14:51
引用: dcexpert 发表于 2020-10-7 14:51 uart.wrtie(),只能发送str或者bytes类型的数据,如果不是需要先转换。 例如可以这样使用:   ...

感谢回复! 请问: 我可能每次发的字节数不固定,例如:欲发送的字节个数值赋给变量cont ,而欲发送的字节放在bytearray数组 array中,又如何使用write( )发送呢? 

 

点赞  2020-10-7 20:12
引用: yanruiqi5678 发表于 2020-10-7 20:12 感谢回复! 请问: 我可能每次发的字节数不固定,例如:欲发送的字节个数值赋给变量cont ,而欲发送的字 ...

刚试了下写成:uart.write(arry,cont)   是可以解决 发送指定字节数 问题! 吐槽下官方文档:这些根本没有提及  也没有示例!连一个串口应用的例子都没有!

点赞  2020-10-7 20:23
引用: yanruiqi5678 发表于 2020-10-7 20:23 刚试了下写成:uart.write(arry,cont)   是可以解决 发送指定字节数 问题! 吐槽下官方文档: ...

官方团队人很少,开源项目文档不全可以理解,需要自己多尝试一下。

点赞  2020-10-7 22:14
#发送的时候,把各个值在0~255之间的十进制数放到list里
sampleList = [value1,value2,value3,value4]
uart.write(bytes(sampleList))

#接收的时候
sampleData = uart.receive() #此处直接把接收的list传递过来了
value1 = sampleData[0]
value2 = sampleData[1]
.....

 

本帖最后由 kylenwang 于 2023-12-30 16:36 编辑
点赞  2023-12-30 16:32
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复