为了账号安全,请及时绑定邮箱和手机立即绑定

Python 3 在通过 Arduino 串行端口(myserial)读取数据时向字符串添加

Python 3 在通过 Arduino 串行端口(myserial)读取数据时向字符串添加

杨__羊羊 2021-08-05 16:42:22
在完成了 30 集的 arduino 编程系列之后,我现在正在学习一些 Python。就包模块而言,我关注的亚军 python 系列似乎有点过时了,我看到了一些奇怪的语法事情发生了,这些事情在原始视频材料中没有发生。本课的目标是让 Python 通过 Arduino 的串行端口读取字符串计数器。Arduino 串口计数器(代码):int cnt=0;void setup() {  // put your setup code here, to run once:  Serial.begin(9600);}void loop() {  Serial.print("I am counting ");  Serial.print(cnt);  Serial.println(" Mississippi");  cnt=cnt+1;  delay(1000);}从 PyCharm 中的串口读取(代码):import serialarduinoSerialData = serial.Serial('com4', 9600)while (1==1):    if (arduinoSerialData.inWaiting()>0):        myData = arduinoSerialData.readline()        print (myData)最终结果:b'I am counting 0 Mississippi\r\n'b'I am counting 1 Mississippi\r\n'b'I am counting 2 Mississippi\r\n'b'I am counting 3 Mississippi\r\n'什么是 b \r \n 标签。为什么它会应用一些像“字符串”这样的自动格式?这在他的视频中不会发生。此外,在 Python 方面,print (myData)格式化为print myData没有 ()。否则它甚至无法编译,但在他的视频中运行良好。这些只是从 Python 2 更新到 Python 3 的语法变化吗?
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

\r是回车符,\n是换行符

他们起源于

   Serial.println(" Mississippi");

您的 arduino 代码行,请注意.printlnprint

b在前面的字符串表示这是一个字节的字符串,如果代替

print(myData)

你做

print(myData.decode())

你不应该再看到他们


查看完整回答
反对 回复 2021-08-05
  • 2 回答
  • 0 关注
  • 288 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号