1. 程式人生 > >Linux串列埠程式設計教程(三)——串列埠程式設計詳(原始碼)解:http://blog.csdn.net/u011192270/article/details/48174353 Linux下的串列埠程式設計(二)----(圖文並茂,講解深刻)http://blog.csdn.net/w28252

Linux串列埠程式設計教程(三)——串列埠程式設計詳(原始碼)解:http://blog.csdn.net/u011192270/article/details/48174353 Linux下的串列埠程式設計(二)----(圖文並茂,講解深刻)http://blog.csdn.net/w28252

Linux串列埠程式設計教程(三)——串列埠程式設計詳(原始碼)解:http://blog.csdn.net/u011192270/article/details/48174353

Linux下的串列埠程式設計(二)----(圖文並茂,講解深刻)http://blog.csdn.net/w282529350/article/details/7378388

幾個要點:
1: /*無奇偶校驗位*/          case 0:
             uart_attr->c_cflag &= ~PARENB;//PARENB:產生奇偶位,執行奇偶校驗
            //uart_attr->c_cflag &= ~INPCK;//INPCK:使奇偶校驗起作用,此處不可寫此劇,否則會亂碼,所以在開發的時候,如果在此處寫上了此劇,要將其註釋掉即可
            break;
:2: options.c_cc[VMIN] = 1;//堵塞的讀,對於read(fd,buf,len),當fd接收到的位元組數 >= len時,才會啟用read函式。
 options.c_cc[VMIN] = 0;//不阻塞的讀取字元,相應的read函式的返回值是 0 或讀取到的位元組數

3: options.c_cc[VTIME] = 100;//設定read函式(在空閒時)的超時時間。當此項設定非0時,無論options.c_cc[VMIN]如何設定,只要fd緩衝區的位元組數 小於 len時(此時算作read的空閒時間),read函式就會阻塞,直到超時時間到。fd的緩衝區位元組數 >= len 是。read 會立即啟用。

4:建議設定:options.c_cc[VTIME] = 0; options.c_cc[VMIN] = 
 0; uart_attr->c_cflag &= ~PARENB;