新聞中心
linux串口是由主機通過外部回路連接從機的一種物理接口類型。用于移動端設備可讓移動設備的的內部系統(tǒng)可以聯(lián)合進行通信,從而改善終端性能,平臺性能和開放性能。串口協(xié)議是全程均按照國際技術標準通信,各種可靠度有保存,確保設備之間安全穩(wěn)定可靠的通信。今天我們就來深入探索Linux串口設置。

Linux串口設置大致可以分為四部分:1、設置串口波特率;2、檢測發(fā)送的字符格式;3、檢測串口接收緩存區(qū)中的字符;4、檢測串口輸出緩存區(qū)中的字符。
首先,設置串口波特率,通常的的串口的波特率都在110,300,600,1200,2400,4800,9600,19200等波特率范圍內,那么我們在Linux中設置串口的波特率可用以下代碼實現(xiàn):
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char **argv)
{
//在此處打開串口設備
int fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY);
if (fd
{
perror("打開串口錯誤!\n");
exit (-1);
}
//以下兩步是設置串口的波特率
struct termios opt;
tcgetattr(fd, &opt);
cfsetispeed(&opt, B9600);
cfsetospeed(&opt, B9600);
tcsetattr(fd, TCSANOW, &opt);
//關閉文件
close(fd);
return 0;
}
然后,檢測發(fā)送的字符格式,可以通過如下代碼進行檢測:
#include
int main(int argc, char **argv)
{
//在此處打開串口
int fd = open("/dev/ttyS1", O_RDONLY | O_NOCTTY);
//檢查發(fā)送的字符
char s[] = "this is a serial test\r\n";
int len = strlen(s);
write(fd, s, len);
//關閉文件
close(fd);
return 0;
}
接著,檢測串口接收緩存區(qū)中的字符,可以通過如下代碼進行檢測
#include
int main()
{
//在此處打開串口
int fd = open("/dev/ttyS1", O_RDONLY | O_NOCTTY);
if (fd
{
perror("打開串口錯誤!\n");
exit (-1);
}
//檢測串口接收緩存區(qū)中的字符
char s[40];
int len = read(fd, s, 40);
printf("從串口接收到的字符串:%s\n", s);
//關閉文件
close(fd);
return 0;
}
最后,檢測串口輸出緩存區(qū)中的字符,可以通過如下代碼進行檢測:
#include
int main()
{
//在此處打開串口
int fd = open("/dev/ttyS1", O_RDWR | O_NOCTTY);
if (fd
{
perror("打開串口錯誤!\n");
exit (-1);
}
//檢測串口輸出緩存區(qū)中的字符
char s[40];
int len = write(fd, s, 40);
printf("完成寫入緩存\n");
//關閉文件
close(fd);
return 0;
}
以上就是Linux串口設置,從設置波特率到檢測發(fā)送、接收、輸出緩存區(qū)中的字符,一步步把USB設備的設置完成。Linux的串口設置可以幫助我們進行高效的通信,其安全性可靠易操作,能為硬件設備提供貼心的操作體驗
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網、IDC服務、應用軟件開發(fā)、網站建設推廣的公司,為客戶提供互聯(lián)網基礎服務!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務器和獨立服務器。創(chuàng)新互聯(lián)成都老牌IDC服務商,專注四川成都IDC機房服務器托管/機柜租用。為您精選優(yōu)質idc數(shù)據(jù)中心機房租用、服務器托管、機柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。
分享名稱:深入探索Linux串口設置(linux設置串口)
URL分享:http://m.fisionsoft.com.cn/article/ccseccc.html


咨詢
建站咨詢
