1 硬件設備
TTL串口攝像頭(VC0706) USB轉TTL燒錄器2 serial安裝
第一次安裝的是serial的包導包的時候發現下載錯了,正確應該是pyserial。安裝后直接import就可以了。
3 實現串口通信
3.1 發現端口
Windows下為COM(N, N=1、2...), Ubuntu下為‘/dev/ttyS0'。Windows初學者,可以給您一下兩種方式確定端口號。
方法一:輸入在終端(cmd)中輸入
python -m serial.tools.list_ports
輸出結果:
COM51 ports found
方法二:搜索電腦上的設備管理器,打開以后然后插入燒錄器,自動就會彈出。如果沒有彈出就可能是驅動沒有安裝,安裝好以后不好使,重啟一下電腦,到了工作的時候大家都知道程序員會跟你說,你重啟一下,清一下緩存,這兩句話。也有可能是驅動安裝的不對。

方法三:直接找一個有端口掃描的上位機,點擊掃描就可以了。大部分上位機都是你一插進去就會檢測到你的端口。
----->
注意:當串口被占用的時候也有可能導致失敗,例如你在編譯器有兩個進程運行下面的測試代碼,第二個進程就會因為端口占用而失效。也有的上位機是因為同時打開了兩個上位機的緣故(實驗課的時候同學遇到過情況),可以用任務管理器kill掉。
測試:
import serial #Windowsser = serial.Serial(port='COM5', baudrate=115200, timeout=0.5)print(ser.name)
控制臺打印結果:
COM5Process finished with exit code 0
建立ser對象的代碼:
class PicSerial: __ser = None # ser的單例 __isinit = False @staticmethod def get_available_port(): """ 檢測可以使用的端口號 :return->str: 端口號的名稱 """ port = list(list_ports.comports()) if len(port) > 0: port_name = port[0].device print(port_name) return port_name # logging.info("Available port:", ports) else: print("There is no available port.") # logging.error("There is no available port.") def __new__(cls, *args, **kwargs): if PicSerial.__ser is None: cls.__ser = object.__new__(cls) return cls.__ser def __init__(self): if not PicSerial.__isinit: self.sername = self.get_available_port() self.ser = serial.Serial(port=self.sername, baudrate=BAUDRATE) PicSerial.__isinit = False print("PicSerial init.")3.2 發送命令
3.2.1 協議格式
新聞熱點
疑難解答