在完成了 30 集的 arduino 編程系列之后,我現(xiàn)在正在學(xué)習(xí)一些 Python。就包模塊而言,我關(guān)注的亞軍 python 系列似乎有點過時了,我看到了一些奇怪的語法事情發(fā)生了,這些事情在原始視頻材料中沒有發(fā)生。本課的目標(biāo)是讓 Python 通過 Arduino 的串行端口讀取字符串計數(shù)器。Arduino 串口計數(shù)器(代碼):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 中的串口讀?。ùa):import serialarduinoSerialData = serial.Serial('com4', 9600)while (1==1): if (arduinoSerialData.inWaiting()>0): myData = arduinoSerialData.readline() print (myData)最終結(jié)果: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 標(biāo)簽。為什么它會應(yīng)用一些像“字符串”這樣的自動格式?這在他的視頻中不會發(fā)生。此外,在 Python 方面,print (myData)格式化為print myData沒有 ()。否則它甚至無法編譯,但在他的視頻中運行良好。這些只是從 Python 2 更新到 Python 3 的語法變化嗎?
2 回答

慕蓋茨4494581
TA貢獻1850條經(jīng)驗 獲得超11個贊
\r
是回車符,\n
是換行符
他們起源于
Serial.println(" Mississippi");
您的 arduino 代碼行,請注意.println
與print
在b
在前面的字符串表示這是一個字節(jié)的字符串,如果代替
print(myData)
你做
print(myData.decode())
你不應(yīng)該再看到他們
添加回答
舉報
0/150
提交
取消