ch12如何配置串口
❶ 串口通信的參數如何設置
串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對於兩個進行通信的埠,這些參數必須匹配。
串列通信
a,波特率:這是一個衡量符號傳輸速率的參數。指的是信號被調制以後在單位時間內的變化,即單位時間內載波參數變化的次數,如每秒鍾傳送240個字元,而每個字元格式包含10位(1個起始位,1個停止位,8個數據位),這時的波特率為240Bd,比特率為10位*240個/秒=2400bps。一般調制速率大於波特率,比如曼徹斯特編碼)。通常電話線的波特率為14400,28800和36600。波特率可以遠遠大於這些值,但是波特率和距離成反比。高波特率常常用於放置的很近的儀器間的通信,典型的例子就是GPIB設備的通信。
b,數據位:這是衡量通信中實際數據位的參數。當計算機發送一個信息包,實際的數據往往不會是8位的,標準的值是6、7和8位。如何設置取決於你想傳送的信息。比如,標準的ASCII碼是0~127(7位)。擴展的ASCII碼是0~255(8位)。如果數據使用簡單的文本(標准
ASCII碼),那麼每個數據包使用7位數據。每個包是指一個位元組,包括開始/停止位,數據位和奇偶校驗位。由於實際數據位取決於通信協議的選取,術語「包」指任何通信的情況。[1]
c,停止位:用於表示單個包的最後一位。典型的值為1,1.5和2位。由於數據是在傳輸線上定時的,並且每一個設備有其自己的時鍾,很可能在通信中兩台設備間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,並且提供計算機校正時鍾同步的機會。適用於停止位的位數越多,不同時鍾同步的容忍程度越大,但是數據傳輸率同時也越慢。
d,奇偶校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:
❷ USB轉串口如何設置埠號
USB轉串口埠號通常是自動配置的,要改設置,可以打開電腦的控制面板,打開設備管理器,按下圖的順序,點畫紅圈的按鈕,最後點開埠號的下拉列表選其中的編號就行了。
❸ vmware虛擬機如何使用串口
如何開啟VMware串口
先前在玩GEC2410時,有個想法,就是在linux下進行調試,由於目標板上電或復位時會發送信息給PC機的串口,這已在windows下實現過,於是想在linux下看看效果,可是當時我在linux下設好串口後,發現一點反應都沒有,當時以為是自己沒有安裝交叉編譯環境,於是昨天晚上把嵌入式 linux下的交叉編譯環境裝好後,心想這下應該可以拉,沒想到我上電目標板,linux下的串口一直沒有反應,郁悶,怎麼這樣呢,既然不適交叉編譯環境的原因,總得有個原因吧,於是我上網搜,先前我也夠笨的,怎麼就不知道上網查呢,呵呵,原來是我沒有把VMware的串口打開,呵呵,馬上關機[關虛擬機下的系統],在VM->Setting......->點擊ADD,把串口加進來,呵呵設置時盡量不要用自動檢測,要選中串口,反正即使你的虛擬系統啟動後可以隨便改的,同時要把串口設為啟動時就連接拉,這樣,linux下的串口在目標板上電或復位後收到和windows下一樣的數據,哈哈,爽!
環境:
宿主機:Windows7 VMware7.1
虛擬機:Fedora12
VMware的串口:
一個虛擬機最多可以添加四個虛擬串口,有如下幾個方法配置虛擬串口:
連接一個虛擬串口到宿主機的物理串口。
連接一個虛擬串口到宿主機上的一個文件。
在兩個虛擬機之間建立一個直接的連接,或者將虛擬機的串口與宿主機的應用程序連接。
為虛擬機添加串口
首先要保證虛擬機處於關機(power off)狀態,選擇菜單中的VM -> Settings... ,在Hardware標簽頁中點擊Add按鈕,在Add Hardware Wizard對話框中選擇Serial Port,點擊next,如圖:
然後要選擇Serial port type,共有三種類型:
1.如果你要使用宿主機的物理串口設備,選擇Use physical serial port on the host,然後點擊next,選擇你要使用的物理串口即可。
2.如果想要將串口數據輸出到一個文件,選擇 Output to file,然後next,選擇輸出文件,該文件是一個txt文本文件。啟動虛擬機後做個測試,在命令行中執行:
echo "asdf" >> /dev/ttyS0,
然後打開輸出文件,即可看到串口輸出的字元串asdf。
3.使用named pipe可以實現兩個虛擬機或虛擬機與宿主機的應用程序通過串口連接。選擇Output to named pipe,點擊next,進入如下界面:
輸入管道名,對於windows宿主機,管道名格式為 //./pipe/ ,必須以 //./pipe/開頭。
輸出調試信息到宿主機上的應用程序:
第一個下拉菜單選擇This end is the server或This end isthe client,在第二個下拉菜單選擇The other end is an application。
輸出調試信息到另一個虛擬機:
第一個下拉菜單選擇This end is the server,第二個下拉菜單選擇The other end is an application。
將兩個虛擬機用串口連接:
在虛擬機上安裝Fedora12和ubuntu10.04,為兩個虛擬機添加串口,
Fedora12的串口設置為:
Ubuntu10.04的串口設置為:
這樣設置後Fedora的串口為serial port 1,設備名為ttyS0,ubuntu的串口為serial port 2,設備名為ttyS1。
測試:
在Fedora下執行:
cat < /dev/ttyS0
在ubuntu下執行:
echo hello > /dev/ttyS1
在Fedora里可以看到收到的字元串hello,說明ubuntu發送和Fedora接收正常,可以互換後做同樣的測試。
語 法
statserial[必要參數][設備]
功 能
statserial 命令:顯示各個接腳的狀態,常用來判斷串口是否正常,Ctrl+C退出
類似命令: stat
相似命令: linux命令
執行許可權: 超級用戶 普通用戶
命令屬性: 網路通訊
參數
必要參數
-n 不循環顯示
-d 十進制顯示
-x 十六進制顯示
選擇參數
無
範例
範例1:顯示串口狀態
[root@linux ~]# statserial /dev/tty1
範例2:只顯示一次串口狀態
[root@linux ~]# statserial -n /dev/tty1
❹ 串口伺服器如何配置
串口伺服器的配置,通常得看說明書
品牌多,產品有差異
因此,針對具體的產品,還是得從 產品說明書開始
涉及到 乙太網,通常是 用 瀏覽器打開管理頁面查看 或者更改相關配置
❺ 怎麼配置單片機串口
最近測試涉及到底層串口代碼的修改。經過這次修改,突然發現其實自己對於串口的一些特性以前並不是十分清楚。
首先遇到的一些問題:
1)在使用IO的數據位的時候,沒有考慮校驗位所佔的位數。
2)在設置串口輸入的時候,使用懸空輸入。
關於1),在一次使用STM32串口參數9600,N,8,1與另一個 8051MCU通信的時候發現偶校驗沒有問題,但是無校驗通信就出現異常。但是,當將STM32與電腦通信的時候,偶校驗與無校驗通信又完全都是正確的。8051MCU單獨與電腦通信也都是完全正確的。查看代碼,還真不知道有什麼不對勁的。因為這段代碼,用了很長時間了。後來一個同事看代碼後,提醒說對於數據位的設置,偶校驗和無校驗是一致的,既然沒有數據位,有可能會少一位。從這點看,這段代碼可以修改看看。於是在這個地方,將偶校驗的時候數據位長度設置為9bit,無校驗的時候設置為8bit。重新測試,發現通信正常了。
❻ 串口初始化的五個步驟
串口時鍾使能,GPIO 時鍾使能
2) 串口復位
3) GPIO 埠模式設置
4) 串口參數初始化
5) 開啟中斷並且初始化 NVIC(如果需要開啟中斷才需要這個步驟)
6) 使能串口
7) 編寫中斷處理函數
.串口時鍾使能。串口是掛載在 APB2 下面的外設,所以使能函數為:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1);
2.串口復位。當外設出現異常的時候可以通過復位設置,實現該外設的復位,然後重新配置
這個外設達到讓其重新工作的目的。一般在系統剛開始配置外設的時候,都會先執行復位該外
設的操作。復位的是在函數 USART_DeInit()中完成:
void USART_DeInit(USART_TypeDef* USARTx);//串口復位
比如我們要復位串口 1,方法為:
USART_DeInit(USART1); //復位串口 1
3.串口參數初始化。串口初始化是通過 USART_Init()函數實現的,
void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);
這個函數的第一個入口參數是指定初始化的串口標號,這里選擇 USART1。
第二個入口參數是一個 USART_InitTypeDef 類型的結構體指針,這個結構體指針的成員變數用
來設置串口的一些參數。一般的實現格式為:
USART_InitStructure.USART_BaudRate = bound; //一般設置為 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長為 8 位數據格式
USART_InitStructure.USART_StopBits = USART_StopBits_1; //一個停止位
USART_InitStructure.USART_Parity = USART_Parity_No; //無奇偶校驗位
USART_InitStructure.USART_HardwareFlowControl
= USART_HardwareFlowControl_None; //無硬體數據流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
//收發模式
USART_Init(USART1, &USART_InitStructure); //初始化串口
從上面的初始化格式可以看出初始化需要設置的參數為:波特率,字長,停止位,奇偶校驗位,
硬體數據流控制,模式(收,發)。我們可以根據需要設置這些參數。
4.數據發送與接收。STM32 的發送與接收是通過數據寄存器 USART_DR 來實現的,這是
一個雙寄存器,包含了 TDR 和 RDR。當向該寄存器寫數據的時候,串口就會自動發送,當收
到數據的時候,也是存在該寄存器內。
STM32 庫函數操作 USART_DR 寄存器發送數據的函數是:
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
通過該函數向串口寄存器 USART_DR 寫入一個數據。
STM32 庫函數操作 USART_DR 寄存器讀取串口接收到的數據的函數是:
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
通過該函數可以讀取串口接受到的數據。
5.串口狀態。串口的狀態可以通過狀態寄存器 USART_SR 讀取。USART_SR 的各位描述如
這里我們關注一下兩個位,第 5、6 位 RXNE 和 TC。
RXNE(讀數據寄存器非空),當該位被置 1 的時候,就是提示已經有數據被接收到了,並
且可以讀出來了。這時候我們要做的就是盡快去讀取 USART_DR,通過讀 USART_DR 可以將
該位清零,也可以向該位寫 0,直接清除。
TC(發送完成),當該位被置位的時候,表示 USART_DR 內的數據已經被發送完成了。如
果設置了這個位的中斷,則會產生中斷。該位也有兩種清零方式:1)讀 USART_SR,寫
USART_DR。2)直接向該位寫 0。
狀態寄存器的其他位我們這里就不做過多講解,大家需要可以查看中文參考手冊。
在我們固件庫函數裡面,讀取串口狀態的函數是:
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
這個函數的第二個入口參數非常關鍵,它是標示我們要查看串口的哪種狀態,比如上面講解的
RXNE(讀數據寄存器非空)以及 TC(發送完成)。例如我們要判斷讀寄存器是否非空(RXNE),操
作庫函數的方法是:
USART_GetFlagStatus(USART1, USART_FLAG_RXNE);
我們要判斷發送是否完成(TC),操作庫函數的方法是:
USART_GetFlagStatus(USART1, USART_FLAG_TC);
這些標識號在 MDK 裡面是通過宏定義定義的:
❼ 串口伺服器參數應該怎麼設置
串口伺服器 在工業領域應用越來越廣泛,在某些應用環境中需要對其參數進行設置,下面介紹串口伺服器參數設置的幾種方法。
一般串口服務的參數設置有網頁和AT指令兩種方法。
第一,網頁設置方法。 通過網頁來設置的方法是最常用的一種方法,在家庭路由器設置上也是用的網頁,所以大多數人都不會陌生。
打開電腦瀏覽器,在地址欄中輸入串口伺服器的ip地址,其ip地址一般在伺服器機身上帶有。打開登陸界面後,輸入登陸賬號和密碼進入界面後,即可修改參數。
網頁設置的優點是使用操作簡單,利用電腦瀏覽器操作即可完成,無須其它配套設備。但須要值得注意的是,串口伺服器的IP地址必須和本機處在同一個網段上。
第二,AT指令設置方法。 AT 指令是指,在命令模式下用戶通過 UART與模塊進行命令傳遞的指令集,上電啟動成功後,可以通過 UART對模塊進行設置。
以有人的單串口伺服器 USR-N510 為例,其模塊的UART口參數為:波特率 115200、無校驗、8 位數據位、1 位停止位。不同的模塊去對應相應的參數即可。最後用戶MCU可以隨時發送串口命令來配置參數。
不同廠家的串口伺服器不同,但其原理大同小異,以上就是兩種設置串口伺服器參數的方法。
以上講述了串口伺服器參數設置的方法,那麼串口伺服器參數設置的步驟是什麼呢?
在購買 串口伺服器 以後,想要實現聯網需求,首先要對串口伺服器進行設置。對於經驗尚淺的從業者來說,真的是很丈二和尚摸不著頭腦。等著技術支持遠程一步步操作是最容易的,缺點是下一次自己依然不會操作。與其直接要果實,不如要耕種的方法,這樣也可以迅速提高自己的專業水平,早日成為行業大牛。
以有人串口伺服器USR-TCP232-304為例,講述串口伺服器的設置流程。
首先將串口伺服器的網口連接到電腦,用485轉USB轉接線連接串口伺服器和電腦,並接通電源。
按照串口伺服器的電子說明書中的默認參數設置本地電腦的IP,如圖所示
再登陸串口伺服器背面的設置頁面地址192.168.0.7進行設置。
打開串口伺服器的設置軟體,搜索設備,搜索設備成功後,設置該串口伺服器的靜態IP地址、波特率,本地埠以及工作方式。如果將串口伺服器進行一對一傳輸,需要將這款串口伺服器設置為TCP Serever的工作模式,點擊「保存參數」(很多人忘了最簡單也是最重要的這步)。
將第二款串口伺服器換上,如上述方法設置第二款串口伺服器的參數。目標IP地址為需要連接的串口伺服器靜態IP,即作為Server的串口伺服器靜態IP地址。本地埠和串口波特率與Server串口伺服器保持一致。靜態IP地址為同IP端的不同IP地址,,點擊「保存參數」。
打開測試軟體,將兩個串口伺服器鏈接的COM埠對應起來(「我的電腦——屬性——設備管理器——埠」)。進行互發信息。