通过Python调用电脑的串口,在pyserial已经正确安装的情况下,通过“python -m serial.tools.list_ports -v”命令列出电脑所有的串口,结果显示如下:
通过上网搜索资料得知,这是因为Python默认调用ASCII编码解码程序去处理字符流,当字符流不属于ASCII范围内时,就会抛出异常(ordinal not in range(128))。解决方法如下:
找到Python安装目录下的“\Python27\Lib”这个路径,找到“site.py”这个文件。用文本编辑器打开他,找到如下的一行:
if 0:
# Enable to support locale aware default string encodings.
import locale
loc = locale.getdefaultlocale()
if loc[1]:
encoding = loc[1]
把这里的“if 0”改成“if 1”,然后重新打开命令行窗口,再运行上述的那条命令,就正常了: