我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ubuntu串口怎么测试

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ubuntu串口怎么测试

本篇内容主要讲解“ubuntu串口怎么测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ubuntu串口怎么测试”吧!

测试新机器的串口硬件的是否正常,可借用以下程序测试串口是否正常运行,代码如下:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define FALSE 1

#define TRUE 0

char *recchr="We received:\"";

void print_usage();

int speed_arr[] = {

B921600, B460800, B230400, B115200, B57600, B38400, B19200,

B9600, B4800, B2400, B1200, B300,

};

int name_arr[] = {

921600, 460800, 230400, 115200, 57600, 38400, 19200,

9600, 4800, 2400, 1200, 300,

};

void set_speed(int fd, int speed)

{

int i;

int status;

struct termios Opt;

tcgetattr(fd, &Opt);

for ( i= 0; i < sizeof(speed_arr) / sizeof(int); i++) {

if (speed == name_arr[i]) {

tcflush(fd, TCIOFLUSH);

cfsetispeed(&Opt, speed_arr[i]);

cfsetospeed(&Opt, speed_arr[i]);

status = tcsetattr(fd, TCSANOW, &Opt);

if (status != 0)

perror("tcsetattr fd1");

return;

}

tcflush(fd,TCIOFLUSH);

}

if (i == 12){

printf("\tSorry, please set the correct baud rate!\n\n");

print_usage(stderr, 1);

}

}

int set_Parity(int fd,int databits,int stopbits,int parity)

{

struct termios options;

if ( tcgetattr( fd,&options) != 0) {

perror("SetupSerial 1");

return(FALSE);

}

options.c_cflag &= ~CSIZE ;

switch (databits) {

case 7:

options.c_cflag |= CS7;

break;

case 8:

options.c_cflag |= CS8;

break;

default:

fprintf(stderr,"Unsupported data size\n");

return (FALSE);

}

switch (parity) {

case 'n':

case 'N':

options.c_cflag &= ~PARENB;

options.c_iflag &= ~INPCK;

break;

case 'o':

case 'O':

options.c_cflag |= (PARODD | PARENB);

options.c_iflag |= INPCK;

break;

case 'e':

case 'E':

options.c_cflag |= PARENB;

options.c_cflag &= ~PARODD;

options.c_iflag |= INPCK;

break;

case 'S':

case 's':

options.c_cflag &= ~PARENB;

options.c_cflag &= ~CSTOPB;

break;

default:

fprintf(stderr,"Unsupported parity\n");

return (FALSE);

}

switch (stopbits) {

case 1:

options.c_cflag &= ~CSTOPB;

break;

case 2:

options.c_cflag |= CSTOPB;

break;

default:

fprintf(stderr,"Unsupported stop bits\n");

return (FALSE);

}

if (parity != 'n')

options.c_iflag |= INPCK;

options.c_cc[VTIME] = 150; // 15 seconds

options.c_cc[VMIN] = 0;

options.c_lflag &= ~(ECHO | ICANON);

tcflush(fd,TCIFLUSH);

if (tcsetattr(fd,TCSANOW,&options) != 0) {

perror("SetupSerial 3");

return (FALSE);

}

return (TRUE);

}

int OpenDev(char *Dev)

{

int fd = open( Dev, O_RDWR ); //| O_NOCTTY | O_NDELAY

if (-1 == fd) {

perror("Can't Open Serial Port");

return -1;

} else

return fd;

}

const char * program_name;

void print_usage (FILE *stream, int exit_code)

{

fprintf(stream, "Usage: %s option [ dev... ] \n", program_name);

fprintf(stream,

"\t-h --help Display this usage information.\n"

"\t-d --device The device ttyS[0-3] or ttySCMA[0-1]\n"

"\t-b --baudrate Set the baud rate you can select\n"

"\t [230400, 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1200, 300]\n"

"\t-s --string Write the device data\n");

exit(exit_code);

}

int main(int argc, char *argv[])

{

int fd, next_option, havearg = 0;

char *device;

int i=0,j=0;

int nread;

char buff[512];

pid_t pid;

char *xmit = "1234567890";

int speed ;

const char *const short_options = "hd:s:b:";

const struct option long_options[] = {

{ "help", 0, NULL, 'h'},

{ "device", 1, NULL, 'd'},

{ "string", 1, NULL, 's'},

{ "baudrate", 1, NULL, 'b'},

{ NULL, 0, NULL, 0 }

};

program_name = argv[0];

do {

next_option = getopt_long (argc, argv, short_options, long_options, NULL);

switch (next_option) {

case 'h':

print_usage (stdout, 0);

case 'd':

device = optarg;

havearg = 1;

break;

case 'b':

speed = atoi(optarg);

break;

case 's':

xmit = optarg;

havearg = 1;

break;

case -1:

if (havearg) break;

case '?':

print_usage (stderr, 1);

default:

abort ();

}

}while(next_option != -1);

sleep(1);

fd = OpenDev(device);

if (fd > 0) {

set_speed(fd, speed);

} else {

fprintf(stderr, "Error opening %s: %s\n", device, strerror(errno));

exit(1);

}

if (set_Parity(fd,8,1,'N')== FALSE) {

fprintf(stderr, "Set Parity Error\n");

close(fd);

exit(1);

}

pid = fork();

if (pid < 0) {

fprintf(stderr, "Error in fork!\n");

} else if (pid == 0){

while(1) {

printf("%s SEND: %s id %d\n",device, xmit,i);

write(fd, xmit, strlen(xmit));

sleep(1);

i++;

}

exit(0);

} else {

while(1) {

nread = read(fd, buff, sizeof(buff));

if (nread > 0) {

buff[nread] = '\0';

printf("%s RECV %d total\n", device, nread);

printf("%s RECV: %s\n", device, buff);

}

}

}

close(fd);

exit(0);

}

使用gcc命令进行编译,然后执行生成的可执行文件

列入:./serialtest -d /dev/ttyS* -b 115200

到此,相信大家对“ubuntu串口怎么测试”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ubuntu串口怎么测试

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ubuntu串口怎么测试

本篇内容主要讲解“ubuntu串口怎么测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ubuntu串口怎么测试”吧!测试新机器的串口硬件的是否正常,可借用以下程序测试串口是否正常运行,代码如下
2023-07-04

ubuntu怎么查看串口信息

在Ubuntu系统中,可以使用以下命令来查看串口信息:1. 使用`ls -l /dev/tty*`命令来列出系统中所有的串口设备。通常,串口设备的命名为`/dev/ttyS*`或`/dev/ttyUSB*`。2. 使用`dmesg | gr
2023-09-16

jmeter接口怎么测试

这篇文章主要介绍“jmeter接口怎么测试”,在日常操作中,相信很多人在jmeter接口怎么测试问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jmeter接口怎么测试”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-21

java怎么测试接口

现在大部分的java项目都是前后端分离,以前不分离的时候测试自己所做的界面都是直接启动界面输入数据打断点等进行调试,那现在前后端分离了,后端接口写好后如何测试自己的接口对不对呢?*test类——本地测试第一种方法就是写一个test类,调用Facade接口,并从
java怎么测试接口
2015-05-15

ubuntu中怎么测试gpu性能

这篇“ubuntu中怎么测试gpu性能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ubuntu中怎么测试gpu性能”文章吧
2023-07-04

linux是怎么测试端口的

这篇文章将为大家详细讲解有关linux是怎么测试端口的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。方法:1、利用telnet命令测试,语法为“telnet ip port”;2、利用ssh
2023-06-26

Linux的udp端口怎么测试

本篇内容介绍了“Linux的udp端口怎么测试”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、tenlnet测试tcp [root@tes
2023-06-28

Postman中怎么进行接口测试和自动化测试

在Postman中进行接口测试和自动化测试可以按照以下步骤进行:创建一个新的Postman集合:在Postman中,创建一个新的集合来组织你的测试用例。集合可以包含多个请求,你可以按照不同的功能或模块进行组织。添加测试用例:在集合中添加测试
Postman中怎么进行接口测试和自动化测试
2024-03-13

什么是接口测试?

接口测试是一种验证软件接口正确性和可靠性的技术,通过模拟客户机与服务器交互实现。它分为功能、性能、安全、兼容性测试等类型。常见的测试方法包括黑盒、白盒、灰盒测试。常用的测试工具有SoapUI、Postman等。接口测试流程包括识别接口、设计用例、执行测试、分析结果、报告结果等步骤。其好处包括提高软件质量、降低维护成本、提升客户满意度等。
什么是接口测试?
2024-04-02

Ubuntu中怎么使用ApacheBench进行压力测试

本文小编为大家详细介绍“Ubuntu中怎么使用ApacheBench进行压力测试”,内容详细,步骤清晰,细节处理妥当,希望这篇“Ubuntu中怎么使用ApacheBench进行压力测试”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
2023-06-27

python怎么编写接口测试文档

本篇内容主要讲解“python怎么编写接口测试文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python怎么编写接口测试文档”吧!目录前言一、postman接口用例转换为python测试用例
2023-06-20

怎么做好SOAP接口性能测试

这篇文章主要介绍“怎么做好SOAP接口性能测试”,在日常操作中,相信很多人在怎么做好SOAP接口性能测试问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么做好SOAP接口性能测试”的疑惑有所帮助!接下来,请跟
2023-06-04

怎样进行API接口测试

这篇文章的内容主要围绕怎样进行API接口测试进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!经常有后端开发会问,后端接口都测试什么?怎么测?简单梳理了
2023-06-04

ubuntu查看串口的方法是什么

在Ubuntu中,可以使用以下方法来查看串口:1. 使用命令行工具:打开终端,输入以下命令来列出所有可用的串口设备:```ls /dev/tty*```通常情况下,串口设备名称的格式为`/dev/ttyS*`(如`/dev/ttyS0`、`
2023-09-14

linux怎么使用curl进行接口测试

要使用curl进行接口测试,首先确保你的Linux系统中已经安装了curl命令。如果尚未安装,可通过如下命令进行安装:```sudo apt-get install curl```安装完成后,可以使用以下方法使用curl进行接口测试:1.
2023-09-16

怎么测试服务器端口通不通

这篇文章主要介绍了怎么测试服务器端口通不通,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一般情况下使用"telnet ip port"判断端口通不通,其实测试方法不止这一种,
2023-06-09

怎么测试云服务器上的端口

云服务器端口测试方法测试云服务器端口有助于确保其安全性和可用性。可以通过以下方法进行测试:netstat命令telnet命令端口扫描器在线端口测试工具云提供商工具最佳实践包括:定期测试使用多种方法考虑防火墙检查端口范围记录结果
怎么测试云服务器上的端口
2024-04-11

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录