利用python发出rs232信号

2023-01-31 01:01:00 信号 发出 利用

最近接的一个项目涉及到用PC机的usb口收发rs232信号。为此,我写了一个简单的python程序,向usb口发送信号,然后通过一个usb转232线缆将信号转为rs232的。最后用万用表检查rs232端有无输出。

硬件:一个usb转rs232的线缆、一块面包板、若干杜邦线、万用表


软件:从Http://rj.baidu.com/soft/detail/25282.html?ald下载Python2.7;下载pyserial-2.6(忘记从 哪里下载pyserial了,可以在我的上传资源里找)


步骤:

1)从http://rj.baidu.com/soft/detail/25282.html?ald下载exe文件,双击之,自动开始安装python2.7;

2)安装完后,从我的资源里下载pyserial,并解压。我把它放在F:\programming\python\pyserial-2.6\

3)启动python IDLE,

4)安装pyserial,步骤如下:

>>import sys, os

>>os.chdir("F:\programming\python\pyserial-2.6")

>>print os.getcwd()

>>import setup.py

>>execfile('setup.py')

假如执行命令后,IDLE没有弹出任何红色告警,就说明pyserial正确安装了


注意:以后每次载入serial模块,都要先把当前路径设为os.chdir("F:\programming\python\pyserial-2.6")。



5)将USB线的usb端插入PC

6)假如是第一次使用usb线,PC机会自动安装它的驱动。这个过程可能比较长,达到十几分钟

7)安装完成后,PC的设备管理器会显示出usb线对应的端口号。在我的计算机上是COM15


8)回到python IDLE,载入pyserial

>>import serial

9)此时可以将rs232这端的信号引出来。我的线缆的232端是母口


9针母口的排列如下:


有的网站http://blog.sina.com.cn/s/blog_72dba9a2010197yh.html说,端口的左右排列是反的。这是因为该网站展示的是公头。两者并不矛盾。

在我的线缆里,5口代表信号地。2口代表信号发射端。

10)打开端口:

>>ser = serial.Serial("COM15", 9600)

11)令端口持续发射acsii字符'a'

>>while True:

     s = 'a'

     ser.write(s)

12)用万用表测量2口和5口之间电压,显示电压约为-8伏,说明python可以控制usb口的发射。按理说,应该用示波器观察发射的信号。但是我没有示波器,只能将就。在日后的博客中,我会给出更有说服力的观察办法。

13)ctrl+c,终止发射。然后在IDLE输入

>>ser.close()

14)再次测量2-5之间电压,此时电压为零。

相关文章