本文介紹了使用API寫串口通信的方法,方便實(shí)現(xiàn)自己想要的各種功能,用一個(gè)國(guó)外網(wǎng)友現(xiàn)成的已經(jīng)封裝好的類庫(kù),不過功能簡(jiǎn)單點(diǎn),相對(duì)我們來說已經(jīng)夠用了。
在整個(gè)終端短信的操作過程中,與串口的通信,只用到了四個(gè)功能,打開、寫、讀、關(guān)閉串口。下面是類庫(kù)對(duì)這四個(gè)功能的定義:
打開串口:
函數(shù)原型:public void Open()
說明:打開事先設(shè)置好的端口
示例:
using JustinIO;
static JustinIO.CommPort ss_port = new JustinIO.CommPort();
ss_port.PortNum = COM1; //端口號(hào)
ss_port.BaudRate = 19200; //串口通信波特率
ss_port.ByteSize = 8; //數(shù)據(jù)位
ss_port.Parity = 0; //奇偶校驗(yàn)
ss_port.StopBits = 1;//停止位
ss_port.ReadTimeout = 1000; //讀超時(shí)
try{
if (ss_port.Opened){
ss_port.Close();
ss_port.Open(); //打開串口舞臺(tái)搭建 毛刷
}
else
{
ss_port.Open();//打開串口
}
return true;
}
catch(Exception e){
MessageBox.Show("錯(cuò)誤:" + e.Message);
return false;
}
寫串口:
函數(shù)原型:public void Write(byte[] WriteBytes)
WriteBytes 就是你的寫入的字節(jié),注意,字符串要轉(zhuǎn)換成字節(jié)數(shù)組才能進(jìn)行通信
示例:
ss_port.Write(Encoding.ASCII.GetBytes("AT+CGMI/r")); //獲取手機(jī)品牌
讀串口:
函數(shù)原型:public byte[] Read(int NumBytes)
NumBytes 讀入緩存數(shù),注意讀取來的是字節(jié)數(shù)組,要實(shí)際應(yīng)用中要進(jìn)行字符轉(zhuǎn)換
示例:
string response = Encoding.ASCII.GetString(ss_port.Read(128)); //讀取128個(gè)字節(jié)緩存
舞臺(tái)搭建 毛刷關(guān)閉串口:
函數(shù)原型:ss_port.Close()
示例:
ss_port.Close();
新聞熱點(diǎn)
疑難解答
圖片精選