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

在完成了 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 serial


arduinoSerialData = 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 的语法变化吗?


杨__羊羊
浏览 401回答 2
2回答

慕盖茨4494581

\r是回车符,\n是换行符他们起源于   Serial.println(" Mississippi");您的 arduino 代码行,请注意.println与print在b在前面的字符串表示这是一个字节的字符串,如果代替print(myData)你做print(myData.decode())你不应该再看到他们
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python