Linux uart程式

2022-11-24 21:46:53 字數 1707 閱讀 4491

我用的是jetson tx1 開發板 都是linux系統出了串列埠檔案可能不同其他的沒有什麼不同都能用。

我安裝的是qt5 

新建一個none  qt c工程,用c 語言開發

期間除錯了兩天結果還是傳送和接收顯示不一樣  是因為rs22 電 壓   跟 uart 的ttl  電壓不匹配  由於開發板沒有帶max232 所以要加轉接板(  uart 轉 ttl)  經測得是3.3v所以要加一個ttl轉rs232的轉接板這樣我們的主機的串列埠就能收到資料

#include

#include

#include

#include

#include

#include

#include

#include

#include

int set_opt(int fd,int nspeed, int nbits, char nevent, int nstop)

bzero( &newtio, sizeof( newtio ) );

newtio.c_cflag |= clocal | cread; //clocal:忽略modem控制線 cread:開啟接受者

newtio.c_cflag &= ~csize; //字元長度掩碼。取值為:cs5,cs6,cs7或cs8

switch( nbits )

switch( nevent )

switch( nspeed )

if( nstop == 1 )

newtio.c_cflag &= ~cstopb; //cstopb:設定兩個停止位,而不是一個

else if ( nstop == 2 )

newtio.c_cflag |= cstopb;

newtio.c_cc[vtime] = 0; //vtime:非cannoical模式讀時的延時,以十分之一秒位單位

newtio.c_cc[vmin] = 0; //vmin:非canonical模式讀到最小字元數

tcflush(fd,tciflush); // 改變在所有寫入 fd 引用的物件的輸出都被傳輸後生效,所有已接受但未讀入的輸入都在改變發生前丟棄。

if((tcsetattr(fd,tcsanow,&newtio))!=0) //tcsanow:改變立即發生

printf("set done!\n\r");

return 0;

}int main(void)

;//char buf1;

//fd1 = open( "/dev/ttyths0", o_rdwr);

fd1 = open( "/dev/ttys0",o_rdwr |o_noctty);

if (fd1 == -1)

printf("open ttys0 success!!\n");

nset = set_opt(fd1, 115200, 8, 'n', 1);

if (nset == -1)

exit(1);

printf("set ttys0 success!!\n");

printf("enter the loop!!\n");

while (1)

/*nread = read(fd1, buf1, sizeof(buf1));

if(nread > 0)

*/sleep(1);

}close(fd1);

return 0;

}

linux程序

e 程序 程序控制塊pcb 結構體 程序控制塊中,存放的是指標陣列 是已經開啟的檔案的結構體的指標 檔案描述符實際上就是指標陣列的索引 e1 ps命令 程序快照 檢視程序狀態 ps aux ps ef e2 程序process概念 程序是一個程式的一次執行過程,是一個程式的執行例項,是一個抽象實體,...

linux 程序

輕量級程序 一個程序有幾個使用者執行緒 執行緒 組成,每個執行緒都代表程序的一個執行流。輕量級程序和每個執行緒關聯起來,執行緒則可簡單的 共享同一個記憶體地址 同一開啟檔案集等來訪問相同的應用程式資料結構集 每個執行緒都可由核心獨立排程,以便一個睡眠的同時另一個依然可行 程序描述符 核心用來了解程序...

uart stty命令使用

1.stty功能 stty set tty,設定tty 命令用於檢查和修改當前註冊的終端的通訊引數,unix系統為鍵盤的輸入和終端的輸出提供了重要的控制手段,可以通過stty命令對特定終端或通訊線路設定選項。stty 命令對當前為標準輸入的裝置設定某些 i o 選項,該命令將輸出寫到當前為標準輸出的...