2
在C#在.NET 4.0中寫入串行端口的單字節導致C#串口寫字節
InvalidOperationException異常是未處理的用戶代碼
每次一個字節被髮送到串行端口。
如何向串口寫入單個字節?
//Serial Init
//Full fledged constuctor
public NetCommManager(String portName, TransmissionType trans, String baud, String parity, String stopBits, String dataBits)
{
nc_baudRate = baud;
nc_parity = parity;
nc_stopBits = stopBits;
nc_dataBits = dataBits;
nc_portName = portName;
nc_transType = trans;
//now add an event handler
comPort.DataReceived += new SerialDataReceivedEventHandler(netComm_DataReceived);
}
配置:
_commManger = new NetCommManager(commPortNumber,
NetCommManager.TransmissionType.Text, "19200", "None", "One", "8");
的字節寫入:
_commManager.WriteByte(Convert.ToByte(0x7B));
而且WriteByte
功能是:
public void WriteByte(byte data)
{
//change data to array
//byte[] dataArray = new byte[1];
var dataArray = new byte[] {data};
//dataArray[0] = data;
comPort.Write(dataArray, 0, 1); // <-- Exception is thrown here
}
的NetCommManager類是非常基礎this example
...並有一些原因的幾個註釋掉線。 – 2012-07-27 02:43:45
註釋行是其他嘗試使其以不同形式工作的其他嘗試 – DogEatDog 2012-07-27 02:55:48
+1。請注意,您仍然缺少'comPort = new ...'部分:)。不知怎的,傑夫E設法弄明白了(顯然+1的答案)。關於註釋掉的代碼 - 考慮它是否顯示了顯着不同的代碼變體。我不認爲它是這種情況 - 所以我只是刪除它。 – 2012-07-27 17:23:09