linux下串列埠非標準波特率的實現
最近要在linux下使用電腦的串列埠,而使用的波特率不是諸如9600,19200之類的標準波特率,從網上查詢非標準波特率的設定方法,都是說對termios結構體進行設定。按照網上的程式碼進行設定卻不成功。費了很大力氣終於找到了原因:原來我的linux版本支援一部分非標準的波特率。下面詳細說明
作業系統版本:ubuntu 12.04 LTS 64bit
檢視/usr/include/x86_64-linux-gnu/bits/termios.h就有一些非標準的波特率,部分程式碼如下:
/*一下紅色為標準波特率部分,B後面的數字就是波特率*/
#define B50 0000001
#define B75 0000002
#define B110 0000003
#define B134 0000004
#define B150 0000005
#define B200 0000006
#define B300 0000007
#define B600 0000010
#define B1200 0000011
#define B1800 0000012
#define B2400 0000013
#define B4800 0000014
#define B9600 0000015
#define B19200 0000016
#define B38400 0000017
#ifdef __USE_MISC
# define EXTA B19200
# define EXTB B38400
#endif
#define CSIZE 0000060
#define CS5 0000000
#define CS6 0000020
#define CS7 0000040
#define CS8 0000060
#define CSTOPB 0000100
#define CREAD 0000200
#define PARENB 0000400
#define PARODD 0001000
#define HUPCL 0002000
#define CLOCAL 0004000
#ifdef __USE_MISC
# define CBAUDEX 0010000
#endif
/*下面這些就是非標準波特率嘍~,B後面的數字就是波特率*/
#define B57600 0010001
#define B115200 0010002
#define B230400 0010003
#define B460800 0010004
#define B500000 0010005
#define B576000 0010006
#define B921600 0010007
#define B1000000 0010010
#define B1152000 0010011
#define B1500000 0010012
#define B2000000 0010013
#define B2500000 0010014
#define B3000000 0010015
#define B3500000 0010016
#define B4000000 0010017
使用方法:
原始碼中像設定標準波特率那樣進行設定即可,只不過是把原來標準波特率的位置替換成上面存在的非標準波特率之一,如:
cfsetispeed(&term,B2000000);
cfsetospeed(&term,B2000000);
(注意:上面程式碼不完整,請網上搜索設定串列埠標準波特率的方法)
本方法對上述linux版本有效,其他版本請自行試驗之~。
相關推薦
linux下串列埠非標準波特率的實現
最近要在linux下使用電腦的串列埠,而使用的波特率不是諸如9600,19200之類的標準波特率,從網上查詢非標準波特率的設定方法,都是說對termios結構體進行設定。按照網上的程式碼進行設定卻不成功。費了很大力氣終於找到了原因:原來我的linux版本支援一部分非標準的
解決Linux下串列埠資料接收不全的異常問題
1、引言 最近在Linux下除錯串列埠程式,遇到了串列埠資料接收不全的異常問題,經過將近一上午的努力終於找到問題根源,特此分享給大家,此次除錯過程中用到了主要用到了minicom工具,至於minicom的使用大家可以自行查詢相關資料。 2、正文
記一次linux下串列埠資料丟包解決過程
專案中兩個晶片之間用串列埠進行通訊,由於傳輸格式中有校驗位,在資料量很大的時候總是校驗失敗。於是花了很長的時間最終解決了這個問題。 首先串列埠丟資料有兩種情況(明顯排除傳送端傳送的資料不對),第一種是通道也就是串列埠線或者連線口不行,無法承受很高的波特率(我使用的波特率是9
linux 下串列埠工具minicom的使用
為了在ubuntu 12.04下能夠看到正常串列埠輸出,使用Minicom. 1、安裝 sudo apt-get install minicom 2、配置 (1)首先在命令列下執行sudo minicom啟動程式 (2)進入主介面後按 Ctrl+A 然後再按Z 進入配
linux下串列埠除錯工具/串列埠終端推薦: picocom
對於picocom, kermit, minicom, picocom 最簡單易用,也完全符合我的使用需求。 安裝(mint / ubuntu):$ sudo apt-get install picocom使用:$ picocom -b 115200 /dev/ttyUSB
嵌入式Linux下串列埠除錯
By Toradex秦海 1). 簡介 UART串列埠是嵌入式裝置最為常用的除錯和通訊介面之一,無論是RS232還是RS422/485都有著非常廣泛的應用,因此本文就基於嵌入式Linux演示在User Space進行串列埠除錯。 本文所演示的平臺來自於Toradex Co
linux裝置驅動,tty串列埠程式設計 如何檢視linux下串列埠是否可用?串列埠名稱等
如何檢視linux下串列埠是否可用?串列埠名稱等? 檢視串列埠是否可用,可以對串列埠傳送資料比如對com1口,echo lyjie126 > /dev/ttyS0 檢視串列埠名稱使用 ls -l /dev/ttyS* 一般情況下串列埠的名稱全部在dev下面,如果你沒
Cutecom--Linux下串列埠除錯工具
Cutecom是一款在Linux環境下,非常好用的串列埠除錯工具,使用方法幾乎跟Windows下的串列埠除錯工具一樣,非常方便。 Cutecom的安裝:直接在終端輸入:sudo apt-get install cutecom。 安裝完後,使用命令:sudo cutecom開
Linux下串列埠程式設計總結
1.串列埠操作需要的標頭檔案 #include <stdio.h> //標準輸入輸出定義 #include <stdlib.h> //標準函式庫定義 #include <unistd.h> //Unix標準函式定義 #include <
linux下串列埠工具minicom使用
系統環境:ubuntu destop 11.10 我當時的需要主要是兩個,能夠看到正常串列埠輸出,並且把串列埠內容實時輸出到檔案中 那接下來工作主要是兩個:1、安裝 2、配置 相信各位也都是至少會操作一些全令行的,我們在這裡用apt-get安裝(不會的同學請google一
linux下串列埠轉TCP網路通訊
“` include”test.h” include”modbus.h” define BUFFER_SIZE 29 int ret; modbus_t *mb; int16_t tab_reg[32]={0}; //初始化串列
linux下串列埠控制
/* 本程式符合GPL條約 * Beneboy 2003-5-16 */ #include <stdio.h> // printf #include <fcntl.h> // open #in
Linux下串列埠通訊詳解(上)開啟串列埠和串列埠初始化詳解
linux下串列埠通訊主要有下面幾個步驟 串列埠通訊流程圖 下面我會一一介紹這幾個步驟。 1.開啟串列埠 程式碼(串列埠為ttyUSB0) //開啟串列埠 int open_port(void) { int fd; fd=open("/dev/ttyUSB0
關於Linux下串列埠通訊的一點心得
這幾天,由於長春門檢系統專案的需要,涉及到了讀卡器資訊的串列埠讀取,所以在Linux下串列埠資訊的讀取有了一點心得體會。 1. 開啟串列埠 與其他的關於裝置程式設計的方法一樣,在Linux下,操作、控制串列埠也是通過操作起裝置檔案進行的。在Linux下,串列埠的裝置檔案是/dev/ttyS0
Linux下串列埠
1.串列埠通訊 DB9串列埠頭型 母頭
Linux下串列埠程式設計基礎
串列埠知識 序列介面 (SerialInterface) 是指資料一位一位地順序傳送,其特點是通訊線路簡單,只要一對傳輸線就可以實現雙向通訊(可以直接利用電話線作為傳輸線),從而大大降低了成本,特別適用於遠距離通訊,但傳送速度較慢。 1. 波特率
linux下串列埠程式設計設定函式---------set_opt(fd1,115200,8,'N'1)--------------------
open /dev/ttys0, 裝置檔案之後,得到檔案描述符, 對串列埠進行設定。 /** *串列埠設定函式:例(fd1, 115200, 8, 'N', 1); *引數: *fd:串列埠裝置節點
【C語言實現串列埠通訊知識點整理(一)】執行緒、開啟串列埠、設定波特率、設定校驗位、互斥鎖等實現基本的通訊
部分程式碼借鑑地址:https://blog.csdn.net/wangqingchuan92/article/details/73497354/ 謝謝! 1.建立執行緒線上程內進行串列埠之間的收發 void CREAT_pthread(void) { pthr
Linux作業系統下串列埠程式設計入門教程
簡介: Linux作業系統從一開始就對序列口提供了很好的支援,本文就Linux下的序列口通訊程式設計進行簡單的介紹。 串列埠簡介 序列口是計算機一種常用的介面,具有連線線少,通訊簡單,得到廣泛的使用。常用的串列埠是RS-232-C介面(又稱EIA RS-232-
Linux下多節點SSH無密碼互聯實現
openssh color pre 都是 測試 創建 私鑰 無密碼ssh 需要 需求:有3個主機192.168.0.191、192.168.0.192、192.168.0.193,需要實現無密碼ssh互聯訪問 我使用的是root用戶進行操作的: 1、每個節點分別檢查是否安裝