pi到arduino的串行通信上的名称错误

时间:2014-01-16 15:26:33

标签: python serial-port

您好我有以下代码并不断收到此错误消息:

NameError:名称'serial'未定义

我已经从许多教程中复制了这段代码,但是如果有人告诉我为什么它就行不通了?

from serial import*
ser = serial.Serial('/dev/ttyACM0', 9600)

while 1:
    ser.readline()

3 个答案:

答案 0 :(得分:1)

以这种方式导入时:

from serial import *

您正在导入内容,就好像它们是在实际文件中声明的一样。来自Python Docs:

  

这将导入除以下划线(_)开头的所有名称。请注意,一般来说importing * from模块或包的做法是不受欢迎的,因为它经常会导致代码难以理解。但是,可以使用它来保存交互式会话中的输入。

所以你可以像Serial那样打电话:

ser = Serial('/dev/ttyACM0', 9600)

如果您不想以这种方式导入(您可能在覆盖字段或已使用的标识符时遇到问题),您可以使用:

import serial

ser = serial.Serial('/dev/ttyACM0', 9600)

答案 1 :(得分:0)

您的第一行必须是:

from serial import *

import*之间需要一个空格。

其次,当您以这种方式导入时,您不需要添加serial。它应该是:

ser = Serial('/dev/ttyACM0', 9600)

答案 2 :(得分:0)

您需要安装pySerial。如果不这样做,请尝试

sudo apt-get install python-serial