linux下的串列埠程式設計流程主要有四個部分,即開啟串列埠,初始化串列埠,傳送和接收資料以及關閉串列埠:
在講述串列埠程式設計之間,先說明一下如何將乙個程式設定成開機啟動的程式。以我們在linux基礎(3)中的helloworld程式為例,其本身就在/bin下,如果不在的話,首先要先拷貝程式到/bin檔案中:
cp -r /xx/xx/helloworld /bin
第二步就是將程式的許可權改為最高許可權:
chmod 777 /bin/helloworld
然後開啟linux系統中的啟動項檔案:
vi /etc/init.d/rcs
該路徑中的檔案存在著linux系統的開機啟動項。
在rcs檔案的最後一行加入:
/bin/helloworld &
儲存退出即可,這樣的話,helloworld程式就是開機啟動項了。
//標頭檔案
#include
#include
#include
#include
#include
#include
void
main()
else
//關閉串列埠
close
(fd)
;}
串列埠初始化的程式比較複雜,我們可以直接在官方例程上改動即可,程式如下:
/*
串列埠初始化程式,引數分別為:
fd:檔案控制代碼
nspeed:波特率
nbits:資料位
nevent:奇偶校驗位
nstop:停止位
*/int
set_opt
(int fd,
int nspeed,
int nbits,
char nevent,
int nstop)
bzero
(&newtio,
sizeof
( newtio ));
newtio.c_cflag |
= clocal | cread;
newtio.c_cflag &
=~csize;
//設定資料位數
switch
( nbits )
//設定奇偶校驗位
switch
( nevent )
//設定波特率
switch
( nspeed )
//設定停止位
if( nstop ==1)
newtio.c_cflag &
=~cstopb;
else
if( nstop ==2)
newtio.c_cflag |
= cstopb;
newtio.c_cc[vtime]=0
; newtio.c_cc[vmin]=0
;tcflush
(fd,tciflush);if
((tcsetattr
(fd,tcsanow,
&newtio))!=
0)// printf("set done!\n\r");
return0;
}
串列埠傳送就是根據第四部分的串列埠配置並結合write寫函式完成,**如下:
//標頭檔案
#include
#include
#include
#include
#include
#include
#include
#include
//預先宣告串列埠配置函式
intset_opt
(int
,int
,int
,char
,int);
void
main()
//開啟串列埠成功,返回成功資訊
else
//延時一秒
sleep(1
);}}
close
(fd)
;}
串列埠接受就是根據第四部分的串列埠配置並結合read寫函式完成,**實現的功能就是接受另一端串列埠傳送過來的資料並將資料再返回過去,**如下:
//標頭檔案
#include
#include
#include
#include
#include
#include
#include
#include
//宣告串列埠配置函式
intset_opt
(int
,int
,int
,char
,int);
void
main()}}}
LabVIEW串列埠程式設計 02 串列埠傳送
先說明一下,跟串列埠相關的函式都位於下圖所示的位置。官方的幫助文件對每個函式有詳細介紹,大家有不懂的地方首先檢視幫助文件,配合搜尋引擎深化理解。串列埠傳送一次資料過程的可以分為三個步驟 開啟串列埠 傳送資料 關閉串列埠。分別對應confugure port,write,close這三個函式。用這三個...
python實戰串列埠助手 7串列埠傳送
上次發的帖子的接收是有異常的,昨天下班時,反覆的測試,發現問題很大,晚上不想睡覺了,就起來修改除錯,終於搞定乙個沒有異常的版本讀取函式,如果有使用我 的,把下面2個函式替換一下即可,但是還有個問題沒有解決,就是顯示到text文字框沒有實現,我還要再繼續研究一下,傳送函式,一次只能發乙個,超過乙個就無...
串列埠通訊模組2 串列埠通訊程式設計基礎 開啟 配置
有兩種方式可以操作串列埠 同步操作方式和非同步操作方式 即重疊操作方式 同步操作時,api函式會阻塞直到操作完成以後才能返回 在多執行緒方式中,雖然不會阻塞主線程,但是仍然會阻塞監聽執行緒 而非同步操作方式,api函式會立即返回,操作在後台進行,避免程序阻塞。非同步操作方式還允許讀 寫操作能同時進行...