因為硬體設定存在缺陷,導致我用C#的SerialPort進行串口通信時,Open()有概率性導致硬體重啟或者直接死機,但是用其他語言的串口工具,甚至是python最簡單的open也不會出現該問題。我很納悶原因,找嵌入式給了個軟體看了下.net的SerialPort.Open到底咋進行的,發現存在兩次重復的操作,不太理解為什么會這樣,有沒有人能解下惑?謝謝!

這是.net的

這是python

這是一個叫sscom的串口除錯器,加殼了不會看到底是什么語言

除了串口工具,.net和python都只進行了配置串口號與波特率,其他都是內置默認引數,但是open操作python更精簡(?),.net的open操作明顯是兩次重復操作,為什么需要這樣做呢?
只有這么點分,希望別介意
uj5u.com熱心網友回復:
自頂一下

uj5u.com熱心網友回復:
對了,硬體方面是需要我在open時使能RTS但是即使如下:
SerialPort.RTS=true;
SerialPort.Open();
Thread.Sleep(100);
SerialPort.RTS=false;
也是在Open后才使能,100毫秒后不使能,這樣也是在Open后才會使能,會導致韌體關機,完全避免不了問題···
我想讓Open時就讓RTS使能,這該咋做啊
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/66462.html
標籤:C#
