我对树莓派有点陌生,但我想我设法启用了某种串行通信,但由于似乎同时使用控制台和调制解调器通信而感到困惑。
下面是我的代码:
import time
import serial
ser = serial.Serial(
port = '/dev/ttyAMA0',
baudrate = 9600,
parity = serial.PARITY_NONE,
stopbits = serial.STOPBITS_ONE,
bytesize = serial.EIGHTBITS,
timeout = 1
)
while 1:
ser.write('AT'+'\r')
time.sleep(1)
print(ser.read(10))
下面是我得到的输出:
Linux 9 raspberrypi AT
OK
Login incorrectraspberrypi login:
AT
OK
Login incorrectraspberrypi login:
AT
OK
Login incorrectraspberrypi login:
AT
OK
AT
OK
Login incorrectraspberrypi login:
Traceback (most recent call last):
File "sim808AT.py", line 17, in <module>
print(ser.read(10))
File "/usr/lib..." read
'device reports readiness to read but returned no data'
然后断开连接...
答案 0 :(得分:0)
AFAIK,设置不带控制台的串口:
还原对串行所做的任何更改(\ boot \ cmdline.txt,\ boot \ config.txt等中的任何其他行)。注意:可以使用MicroSloth操作系统访问启动分区!
运行sudo raspi-config
。
在“ 5个接口选项”->“ P6串行”下,为外壳选择“否”,为端口硬件选择“是”。
重新启动并测试。
顺便说一句,硬件串行现在是ttyAMA0而不是ttyS0。
我实际上发现您的帖子正在寻找自己的解决方案;我在使用最新的Pi映像进行串行处理时遇到问题(2018年10月),但是我离题了;)