我无法从Raspberry Pi UART引脚读取数据。这是我使用的Python代码:
import serial
import time
import string
import pynmea2
while True:
port="/dev/ttyAMA0"
ser=serial.Serial(port, baudrate=115200, timeout=0.5)
dataout = pynmea2.NMEAStreamReader()
newdata=ser.readline()
if newdata[0:6] == "$GPRMC":
newmsg=pynmea2.parse(newdata)
lat=newmsg.latitude
lng=newmsg.longitude
gps = "Latitude=" + str(lat) + "and Longitude=" + str(lng)
print(gps)
运行代码时,出现此错误:
跟踪(最近一次通话):文件“ /usr/lib/python3/dist-packages/serial/serialposix.py”,第265行,在打开self.fd = os.open(self.portstr,os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK)PermissionError:[Errno 13]权限被拒绝:'/ dev / ttyAMA0'在处理以上异常期间,另一个发生异常:追溯(最近一次呼叫最近):文件“ /home/pi/Desktop/sa.py”,第8行,在ser = serial.Serial(端口,波特率= 115200,超时= 0.5)文件“ /usr/lib/python3/dist-packages/serial/serialutil.py”,第240行,在initself.open()文件“ /usr/lib/python3/dist-packages/serial/serialposix.py”,第268行,在打开引发SerialException(msg.errno,“无法打开端口{}:{}”。format(self._port,msg))serial.serialutil.SerialException:[Errno13]无法打开端口/ dev / ttyAMA0:[Errno 13]权限被拒绝:'/ dev / ttyAMA0'
您应该使用sudo