㈠ 如何用python寫個串口通信的程序
打開串口後啟動一個線程來監聽串口數據的進入,有數據時,就做數據的處理。
㈡ 如何用python實現串口通信
Python非常適合寫一些測試的腳本,如快速的串口通信測試等。如果使用VC++ QT開發,可能用時較多,使用python,如果掌握使用方法,可以直接讀寫測試,配合設備或是串口助手,很快驗證與實現。
Python有沒有現成的串口API直接調用呢?經過實踐驗證,需要安裝一個叫 Pyserial的組件即可。這個可以在github上下載。
在windows 7 64bit 上可以使用嗎?當然可以使用,我安裝的python3.5為64位的。把下載後的文件,其中有一個serial的文件夾,拷貝到python35安裝路徑, C:\Python35\Lib\site-packages\serial
網上可以搜一下windows的安裝包,安裝完也是:C:\Python35\Lib\site-packages\serial ,可以用最新的版本,替換即可。
測試的方法:在python IDE里測試:
>>> import serial
這里如果報錯,是python版本與pyserial版本沒有配合好。如果正常,不返回,即可以導入serial模塊。
>>> ser=serial.Serial("COM5",115200)
這里為COM5,115200的波特率。如果打不開,請檢查安裝環境。
>>> ser.write('hello,serial test'.encode())
17
發送測試(如果返回位元組數,說明返回成功),這里需要轉換一個編碼為位元組。
以上測試,可以使用現在的設備或是串口助手,如安裝Virtual Serial Port Driver 7.2 虛擬串口軟體,設置一對串口,進行自發自收的測試。
>>> print(ser.readline())
b'abcdefg\r\n'
這里是串口接收,有接收的超時。設備或是串口助手發送一個字元串,以回車換行結束,這里就可以收到列印出來。
也可以用ser.read(),這里只接收一個字元來實現。
上面已經實現了基本的串口操作。
關閉串口為:
>>> ser.close()
如果使用python,一般寫個py文件,就像windows bat 批處理一樣,這是python強大的地方。如果寫一個py腳本呢?其實只要把上面的命令,一條條寫下來,就是一個腳本,測試如下:
import serialser=serial.Serial("COM5",115200,timeout=0.5)for i in range(0,100-1):ser.write('hello\r\n'.encode())print(ser.readline());ser.close()
㈢ python 如何防止串口通信失敗
Python中串口出現異常通常有:1.打開串口時,串口不存在,2.寫串口時,3.讀串口時。這幾個異常是經常會碰到的(有經驗的人就深有體會),一旦異常出現了,整個程序很可能會因此就運行不下去了。避免因為這些異常的出現而導致程序死機的方法是對這些可能存在的異常進行捕捉。舉一個例子:
try:
ComDev.read(1)
print "read Com ok!"
except:
print "read Com error!"
上面的代碼意思是:對ComDev這個串口對象讀取一個位元組,如果讀成功,就接著執行print "read Com ok!"而不執行except以下的語句,如果讀出現異常,就執行print "read Com error"而不執行
print "read Com ok!"
當然系統還會拋出異常信息,只是我這里沒有進行接收,個人覺得很多異常不必接收其信息。
㈣ python如何獲取伺服器硬體狀態信息,包括CPU溫度、硬碟溫度、主板電池電壓、主機電源電壓、CPU風扇轉速
>>> import psutil
>>> psutil.cpu_times()
scputimes(user=3961.46, nice=169.729, system=2150.659, idle=16900.540, iowait=629.59, irq=0.0, softirq=19.42, steal=0.0, guest=0, nice=0.0)
>>>
>>> for x in range(3):
... psutil.cpu_percent(interval=1)
...
4.0
5.9
3.8
>>>
>>> for x in range(3):
... psutil.cpu_percent(interval=1, percpu=True)
...
[4.0, 6.9, 3.7, 9.2]
[7.0, 8.5, 2.4, 2.1]
[1.2, 9.0, 9.9, 7.2]
>>>
>>>
>>> for x in range(3):
... psutil.cpu_times_percent(interval=1, percpu=False)
...
scputimes(user=1.5, nice=0.0, system=0.5, idle=96.5, iowait=1.5, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
scputimes(user=1.0, nice=0.0, system=0.0, idle=99.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
scputimes(user=2.0, nice=0.0, system=0.0, idle=98.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
>>>
>>> psutil.cpu_count()
4
>>> psutil.cpu_count(logical=False)
2
>>>
㈤ python獲取串口設備的描述
importwinreg
key=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"{36FC9E60-C465-11CF-8056-444553540000}")
foriinrange(winreg.QueryInfoKey(key)[0]):
subkey=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,"SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\"+winreg.EnumKey(key,i))
print(winreg.QueryValueEx(subkey,'DriverDesc'))
winreg.CloseKey(subkey)
winreg.CloseKey(key)
importwinreg
key=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"")
try:
i=0
while1:
name,value,type=winreg.EnumValue(key,i)
print(repr(name),value)
i+=1
value,type=winreg.QueryValueEx(key,"EnableAutoTray")
exceptFileNotFoundError:
exceptOSError:
以前回答過一個,好像跟你說的意思差不多,都是讀取注冊表,一個讀USB,一個是串口
㈥ 學python,可以用哪些開發軟體,用什麼開發軟體最好
1. PyCharm
PyCharm是唯一一款專門面向Python的全功能集成開發環境,同樣擁有付費版和免費開源版,PyCharm不論是在Windows、 Mac OS X系統中,還是在Linux系統中都支持快速安裝和使用。
PyCharm直接支持Python開發環境,打開一個新的文件然後就可以開始編寫代碼,也可以在PyCharm中直接運行和調試Python程序,它還支持源碼管理和項目,並且其擁有眾多便利和支持社區,能夠快速掌握學習使用!
2. Eclipse + PyDev
PyDev是Eclipse集成開發環境的一個插件,支持Python調試、代碼補全和互動式Python控制台等,在Eclipse中安裝PyDev非常便捷,只需從Eclipse中選擇「Help」點擊「Eclipse Marketplace」然後搜索PyDev,點擊安裝,必要的時候重啟Eclipse即可,對於資深Eclipse開發者來說,PyDev可以很輕松上手!
3. Visual Studio
Visual Studio是一款全功能集成開發平台,提供了免費版和付費版,可以支持各種平台的開發,且附帶了自己的擴展插件市場。在Visual Studio中可進行Python編程,並且支持Python智能感知、調試和其他工具,值得注意的是Visual Studio不支持Linux平台!
4. Spyder
Spyder是一款為了數據科學工作流做了優化的開源Python集成開發環境,它是附在Anaconda軟體包管理器發行版中的,Spyder擁有大部分集成開發環境該具備的功能,如強大語法高亮功能的代碼編輯器、Python代碼補全以及集成文件瀏覽器,其還具有其他Python編輯環境中所不具備的變數瀏覽器功能,十分適合使用Python的數據科學家們。
5. Thonny
Thonny是針對新手的一款集成開發環境,適用於全部主流平台,默認情況下,Thonny會和自帶捆綁的Python版本一起安裝,十分方便新手使用!
㈦ python3.5 讀取串口中的數據怎麼解碼
1、安裝串口庫
2、採用默認通信參數
import serial
t = serial.Serial('com1',9600)
n = t.write('you are my world')print t.portstrprint n
str = t.read(n)print str
3、可以自己設置參數
import timeimport serialser = serial.Serial( #下面這些參數根據情況修改 port='COM1', baudrate=9600, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_TWO, bytesize=serial.SEVENBITS)data = ''while ser.inWaiting() > 0: data += ser.read(1)if data != '': print data
注意:Python與多個串口通信的時候,要確定埠號。如果有時間的話,可以自己寫一個查詢所有埠的信息,不想這么麻煩的話,下載個串口助手,自己看埠信息,在py文件中修改serial.Serial()裡面的埠號。