linux串口數據接收
Ⅰ 虛擬機下的linux怎麼接受主機串口接收的數據
虛擬機中的串口連接可以採用兩種方法。一種是指定虛擬機的串口連接到實際的COM上,例如開發機連接到COM1,目標機連接到COM2,然後把兩個串口通過串口線相連接。另一種更為簡便的方法是:在較高一些版本的VMware中都支持把串口映射到命名管道,把兩個虛擬機的串口映射到同一個命名管道。例如,在兩個虛擬機中都選定同一個命名管道 \\.\pipe\com_1,指定target機的COM口為server端,並選擇"The other end is a virtual machine"屬性;指定development機的COM口端為client端,同樣指定COM口的"The other end is a virtual machine"屬性。對於IO mode屬性,在target上選中"Yield CPU on poll"復選擇框,development機不選。
串口是開發者經常要使用到的,我們有些時候需要使用windows開發,然而window裝在了虛擬機中,我們怎麼樣在虛擬機中使用串口呢?
1、在virtualbox中選擇啟用串口,埠模式選擇Host device.
由於現有兩個系統但是只有一個物理串口,所以虛擬機要通過主機的串口文件間接獲取數據,主機是linux,串口設備為/dev/ttyS0
2、埠/文件位置一欄填入:/dev/ttyS0,啟動虛擬機。
3、如果無法啟動虛擬機,很有可能是沒有對ttyS0設備的讀寫許可權,(可以ls -l /dev/ttyS0查看以下許可權)於是我們要修改ttyS0的許可權,在終端中輸入:sudo chmod 777 /dev/ttyS0 這樣就將ttyS0的所有許可權都打開了。啟動虛擬機,這時候就可以在虛擬機中(winXP)使用串口了
Ⅱ linux 串口接收數據怎樣才能知道數據到來(C語言)
軟體上使能接收中斷,當收到數據就會進入中斷處理函數,就可以知道了。
如果產生不了接收中斷,就得從硬體上看了,只能用示波器看看串口的RX線是否有數據過來。