在完成了 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 代码行,请注意.println
与print
在b
在前面的字符串表示这是一个字节的字符串,如果代替
print(myData)
你做
print(myData.decode())
你不应该再看到他们
添加回答
举报
0/150
提交
取消