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

**1. 打開串口設備**
首先在 Linux 系統(tǒng)下使用 open() 函數(shù)來打開串口設備文件,然后指定要打開的串口設備文件名。只要正確選擇了設備,將返回句柄類型的文件標識符。
#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ù)據(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. 關閉串口設備**
關閉串口設備非常簡單,只要使用close函數(shù)就可以實現(xiàn)關閉操作,以釋放掉所占用的串口設備資源。
#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),可以應用在自動控制的各種應用編程中。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
網(wǎng)站標題:Linux串口讀取數(shù)據(jù)技巧(串口readlinux)
網(wǎng)頁鏈接:http://www.dlmjj.cn/article/cojoccp.html


咨詢
建站咨詢
