简体   繁体   中英

Unable to read Raspberry Pi UART Pins

I'm unable to read data from Raspberry Pi UART pins. This is the Python code I used:

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)

When I run the code, I get this error:

Traceback (most recent call last): File"/usr/lib/python3/distpackages/serial/serialposix.py", line 265, in openself.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK) PermissionError: [Errno 13] Permission denied:'/dev/ttyAMA0' During handling of the above exception, another exception occurred: 
Traceback (most recent call last):   File "/home/pi/Desktop/sa.py", line 8, in <module> ser=serial.Serial(port, baudrate=115200, timeout=0.5)   File "/usr/lib/python3/dist-packages/serial/serialutil.py", line 240, in__init__
    self.open()   File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 268, in open raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg)) serial.serialutil.SerialException: [Errno13] could not open port /dev/ttyAMA0: [Errno 13] Permission denied:'/dev/ttyAMA0'

You should run it using sudo . Your current user does not have permission to open the com port.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM