linux tcgetattr 函式功能和使用場景

2021-10-07 16:57:16 字數 2661 閱讀 7286

#include

該函式用到 struct termios 該資料結構

/*定義乙個termios結構體*/

struct termios options;

/*將檔案描述符的屬性放入該結構體*/

tcgetattr

(fd,

&options)

;/*修改相應的屬性*/

cfsetispeed

(&options,b4800)

;cfsetospeed

(&options,b4800)

;options.c_cflag |

= clocal;

//保證程式不占用串列埠

options.c_cflag |

= cread;

//保證程式可以從串列埠中讀取資料

options.c_cflag &

=~crtscts;

//不進行流控制

options.c_cflag |

= crtscts;

//進行硬體流控制

options.c_cflag |

= ixon|ixoff|ixany;

//進行軟體流控制

options.c_cflag &

=~csize;

//遮蔽其它標誌位

options.c_cflag |

= cs5;

options.c_cflag &

=~csize;

//遮蔽其它標誌位

options.c_cflag |

= cs6;

options.c_cflag &

=~csize;

//遮蔽其它標誌位

options.c_cflag |

= cs7;

options.c_cflag &

=~csize;

//遮蔽其它標誌位

options.c_cflag |

= cs8;

options.c_cflag &

=~parenb;

//parenb:產生奇偶位,執行奇偶校驗

options.c_cflag &

=~inpck;

//inpck:使奇偶校驗起作用

/*設為空格,即停止位為2位*/

options.c_cflag &

=~parenb;

//parenb:產生奇偶位,執行奇偶校驗

options.c_cflag &

=~cstopb;

//cstopb:使用兩位停止位

/*設定奇校驗*/

options.c_cflag |

= parenb;

//parenb:產生奇偶位,執行奇偶校驗

options.c_cflag |

= parodd;

//parodd:若設定則為奇校驗,否則為偶校驗

options.c_cflag |

= inpck;

//inpck:使奇偶校驗起作用

options.c_cflag |

= istrip;

//istrip:若設定則有效輸入數字被剝離7個位元組,否則保留全部8位

/*設定偶校驗*/

options.c_cflag |

= parenb;

//parenb:產生奇偶位,執行奇偶校驗

options.c_cflag &

=~parodd;

//parodd:若設定則為奇校驗,否則為偶校驗

options.c_cflag |

= inpck;

//inpck:使奇偶校驗起作用

options.c_cflag |

= istrip;

//istrip:若設定則有效輸入數字被剝離7個位元組,否則保留全部8位

/*設定停止位*/

options.c_cflag &

=~cstopb;

//cstopb:使用兩位停止位

options.c_cflag |

= cstopb;

//cstopb:使用兩位停止位

/*設定輸出模式為原始輸出*/

options.c_oflag &

=~opost;

/*設定本地模式為原始模式*/

options.c_lflag &=~

(icanon | echo | echoe | isig);/*

*icanon:允許規範模式進行輸入處理

*echo:允許輸入字元的本地回顯

*echoe:在接收epase時執行backspace,space,backspace組合

*isig:允許訊號

*//*設定等待時間和最小接受字元*/

options.c_cc[vtime]=0

;//可以在select中設定

options.c_cc[vmin]=1

;//最少讀取乙個字元

/*如果發生資料溢位,只接受資料,但是不進行讀操作*/

tcflush

(fd,tciflush)

;/*將結構體寫回檔案描述符,啟用配置*/

tcsetattr

(fd,tcsanow,

&options)

uart串列埠通訊的初始化設定示例**

WaitForSingleObject函式的使用

程式舉例 1 建立對話方塊應用程式,專案名稱為mytestthread 2 新增按鈕,命名為啟動和停止,在對話方塊中增加編輯框,id為idc time,3 增加成員變數,handle m hthread 2 此為執行緒的控制代碼 4 定義全域性變數,用來控制線程的執行與否 volatile bool...

cvCreateVideoWriter函式使用

cvcreatevideowriter函式使用 2011 11 04 15 47 例如,cv fourcc p i m 1 是mpeg 1 codec,cv fourcc m j p g 是motion jpeg codec cv fourcc m p 4 2 mpeg 4.2 codec cv f...

CentimetersToPoints函式出錯

在word開發中,碰到centimeterstopoints函式呼叫出錯,提示未指定的錯誤的問題。解決辦法為修改centimeterstopoint函式 匯入msword.olb後的centimeterstopoint函式如下 修改後的centimeterstopoint函式如下,紅色表示的部分為增...