新聞中心
隨著物聯(lián)網(wǎng)及自動控制領(lǐng)域愈發(fā)普及,linux 串口技術(shù)應(yīng)用范圍越來越廣。下面以 Linux 環(huán)境下編程讀取串口數(shù)據(jù)為例介紹關(guān)鍵步驟。

**1. 打開串口設(shè)備**
首先在 Linux 系統(tǒng)下使用 open() 函數(shù)來打開串口設(shè)備文件,然后指定要打開的串口設(shè)備文件名。只要正確選擇了設(shè)備,將返回句柄類型的文件標(biāo)識符。
#include
#include
......
int fd;
......
fd = open("/dev/ttyS0",O_RDWR | O_NOCTTY | O_NDELAY);
if(fd == -1)
{
printf("open serial port failed!\n");
}
else
{
printf("open serial port success!\n");
}
**2. 設(shè)置串口的參數(shù)**
設(shè)置串口的參數(shù)必須通過終端控制臺來進行,主要有波特率、數(shù)據(jù)位、停止位和校驗位等4個方面。這里要使用到tcsetattr()函數(shù),用于控制終端的輸入和輸出。
#include
......
struct termios SerialPortSettings;
......
tcgetattr(fd, &SerialPortSettings);
cfsetispeed(&SerialPortSettings,B9600);
cfsetospeed(&SerialPortSettings,B9600);
SerialPortSettings.c_cflag &= ~PARENB;
SerialPortSettings.c_cflag &= ~CSTOPB;
SerialPortSettings.c_cflag &= ~CSIZE;
SerialPortSettings.c_cflag |= CS8;
SerialPortSettings.c_cflag &= ~CRTSCTS;
SerialPortSettings.c_cflag |= CREAD | CLOCAL;
SerialPortSettings.c_iflag &= ~(IXON | IXOFF | IXANY);
SerialPortSettings.c_iflag &= ~ICRNL;
SerialPortSettings.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
SerialPortSettings.c_oflag &= ~OPOST;
SerialPortSettings.c_cc[VMIN] = 10;
SerialPortSettings.c_cc[VTIME] = 0;
tcsetattr(fd,TCSANOW,&SerialPortSettings);
**3. 讀取串口數(shù)據(jù)**
按串口格式讀取數(shù)據(jù),使用read()函數(shù),將連續(xù)的 8 位數(shù)據(jù)幀的每一位都讀取出來,用于各種自動控制的實現(xiàn)。
#include
......
int ByteRead;
unsigned char ReadBuffer[256] = {0};
......
ByteRead = read(fd, ReadBuffer ,256);
printf("Bytes Rxed %d\n", ByteRead);
for(int i=0; i
{
printf("%c\n", ReadBuffer[i]);
}
**4. 關(guān)閉串口設(shè)備**
關(guān)閉串口設(shè)備非常簡單,只要使用close函數(shù)就可以實現(xiàn)關(guān)閉操作,以釋放掉所占用的串口設(shè)備資源。
#include
......
if (close(fd) == -1)
{
printf("fail to close ttyS0\n");
}
else
{
printf("ttyS0 closed successful!\n");
}
通過以上步驟,Linux 環(huán)境下的串口讀取數(shù)據(jù)已經(jīng)實現(xiàn),可以應(yīng)用在自動控制的各種應(yīng)用編程中。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
新聞名稱:Linux串口讀取數(shù)據(jù)技巧(串口readlinux)
文章鏈接:http://fisionsoft.com.cn/article/cojoccp.html


咨詢
建站咨詢
