在Mac下用Python驱动串口调试

现在的笔记本几乎都不带串口了,买了Mac之后想着Mac的生态,以为USB转串口无望,没想到竟然有PL2303和CH340的驱动!!!惊不惊喜,意不意外!

原本以为手头上的是PL2303,调试了许久一直未成功,没想到IC竟然是CH340,更没想到的是这又是更大的一个坑了。安装好CH340驱动之后,接入就“蓝屏”(6国语言)网上搜了好久才发现原因,详情见链接http://download.makeblock.com/mblock/CH34x_Install_V1.3.pkg

更换了这个驱动之后就可以正常工作了。

安装好驱动之后打开中端,输入下面连个语句查询是否有串口

cd /dev

sl tty.*

如下图:

查询到的端口


串口调试工具用的是免费软件CoolTer,网上可以搜到,就不贴链接了

首先,选择port,刚开始没注意,老是失败,结果发现选到蓝牙的port去了。

再者,设置波特率,这个跟下位机的波特率一致就行。

最后,配置好之后点击Connect就可以接收到下位机的数据了(请先确定下位机正常工作)!



在Mac下用Python驱动串口调试_第1张图片
CoolTer配置界面




下位机我用的是MSP430作为主机,向电脑发送数据,其实我挂载了一个DHT11,把DHT11采集到的温湿度数据传回Mac,这才是最初调试串口的原因。

DHT11使用的是单总线传输数据,是达拉斯公司的专利(现美信所持有)。

DHT11的数据构成,总5个Byte,Byte0和Byte1是湿度的整数和小数的数据,Byte2和Byte3是温度的整数和小数,Byte4校验位。

必须注意的是Byte1和Byte4是始终为0的,当时就是因为读取到这两个byte异常,一度以为驱动有问题。关于校验位,Byte0+Byte3=Byte4.


python代码:

import serial

ser=serial.Serial("/dev/tty.wchusbserial1420",115200,timeout=0.5)  #打开串口,设置波特率,和超时时间

#print(ser.name)             #测试用

ser.open

while(1):     #因为只是测试用,所以粗暴的用了while(1)循环,查询串口数据,不建议

s = ser.read(13)

print(s)         #打印串口读到的数据




在Mac下用Python驱动串口调试_第2张图片
Pycharm控制台收到的下位机数据


好啦,到此为止,串口工作正常,可以利用Python尽情玩耍啦!!!!

最最最最后,转载请注明出处哟,觉得写得好点个赞,觉得帮助到了你也可以点赞赏,请我喝一杯茶。^_^ 有问题请留言

https://www.jianshu.com/p/9d67e43e795f

你可能感兴趣的:(在Mac下用Python驱动串口调试)