linux串口是由主机通过外部回路连接从机的一种物理接口类型。用于移动端设备可让移动设备的的内部系统可以联合进行通信,从而改善终端性能,平台性能和开放性能。串口协议是全程均按照国际技术标准通信,各种可靠度有保存,确保设备之间安全稳定可靠的通信。今天我们就来深入探索Linux串口设置。
Linux串口设置大致可以分为四部分:1、设置串口波特率;2、检测发送的字符格式;3、检测串口接收缓存区中的字符;4、检测串口输出缓存区中的字符。
首先,设置串口波特率,通常的的串口的波特率都在110,300,600,1200,2400,4800,9600,19200等波特率范围内,那么我们在Linux中设置串口的波特率可用以下代码实现:
#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;
}
然后,检测发送的字符格式,可以通过如下代码进行检测:
#include
int main(int argc, char **argv)
{
//在此处打开串口
int fd = open("/dev/ttyS1", O_RDONLY | O_NOCTTY);
//检查发送的字符
char s[] = "this is a serial test\r\n";
int len = strlen(s);
write(fd, s, len);
//关闭文件
close(fd);
return 0;
}
接着,检测串口接收缓存区中的字符,可以通过如下代码进行检测
#include
int main()
{
//在此处打开串口
int fd = open("/dev/ttyS1", O_RDONLY | O_NOCTTY);
if (fd
{
perror("打开串口错误!\n");
exit (-1);
}
//检测串口接收缓存区中的字符
char s[40];
int len = read(fd, s, 40);
printf("从串口接收到的字符串:%s\n", s);
//关闭文件
close(fd);
return 0;
}
最后,检测串口输出缓存区中的字符,可以通过如下代码进行检测:
#include
int main()
{
//在此处打开串口
int fd = open("/dev/ttyS1", O_RDWR | O_NOCTTY);
if (fd
{
perror("打开串口错误!\n");
exit (-1);
}
//检测串口输出缓存区中的字符
char s[40];
int len = write(fd, s, 40);
printf("完成写入缓存\n");
//关闭文件
close(fd);
return 0;
}
以上就是Linux串口设置,从设置波特率到检测发送、接收、输出缓存区中的字符,一步步把USB设备的设置完成。Linux的串口设置可以帮助我们进行高效的通信,其安全性可靠易操作,能为硬件设备提供贴心的操作体验
成都创新互联科技有限公司,是一家专注于互联网、IDC服务、应用软件开发、网站建设推广的公司,为客户提供互联网基础服务!
创新互联(www.cdcxhl.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。创新互联成都老牌IDC服务商,专注四川成都IDC机房服务器托管/机柜租用。为您精选优质idc数据中心机房租用、服务器托管、机柜租赁、大带宽租用,可选线路电信、移动、联通等。
网站标题:深入探索Linux串口设置(linux设置串口)
本文地址:http://www.csdahua.cn/qtweb/news35/365035.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网