#include <libserialport.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <unistd.h>
int main(int argc, char **argv)
{
if (argc < 2) {
printf("Usage: %s <port> <baudrate> \n", argv[0]);
return -1;
}
char *port_names = argv[1];
struct sp_port *port;
int baudrate = argc == 3 ? atoi(argv[2]) : 115200;
sp_get_port_by_name(port_names, &port);
int res = sp_open(port, SP_MODE_READ_WRITE);
if(res != SP_OK)
{
printf("Open port: %s ERROR %d\n", port_names, res);
abort();
}
printf("Open port: %s baudrate: %d\n", port_names, baudrate);
sp_set_baudrate(port, baudrate);
sp_set_bits(port, 8);
sp_set_parity(port, SP_PARITY_NONE);
sp_set_stopbits(port, 1);
sp_set_flowcontrol(port, SP_FLOWCONTROL_NONE);
unsigned int timeout = 500;
int buf_len = 40960000;
char *buf = malloc(buf_len);
while (1)
{
struct timeval start, end;
gettimeofday(&start, NULL);
int n = sp_blocking_read(port, buf, buf_len, timeout);
gettimeofday(&end, NULL);
if(n > 0)
{
long timeUsedUs = (end.tv_sec - start.tv_sec) * 1000 * 1000 + end.tv_usec - start.tv_usec;
double speed = n * 1000.0 * 1000.0 / timeUsedUs / 1024;
printf("recv n: %d time timeUsedUs %d us: speed %.2f KB/s\n", n, timeUsedUs, speed);
}
}
free(buf);
sp_close(port);
return 0;
}
libserialport 库串口速度测试
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 对于序列化超长整数,数据量达GB量级的测试结果如上(各库都是最新版,常规用法,未特别优化) 如Cap'n Prot...
- 在进行PID参数整定的工作过程中,我需要将电机的转速、扭矩、母线电压、母线电流、相电压、相电流等参数通过串口传递到...
- 一般来说,喜欢站立的人,比喜欢躺着或或坐着的人,身材更好。与躺着的姿势相比,站姿所消耗的能量要多出10%。而单腿站...
- 今天给大家分享的是如何使pip下载速度可以“飞”起来。 国内的镜像源主要有: 阿里云:http://mirrors...
- 一般情况下mysql上百万数据读取和插入更新是没什么问题了,但到了上千万级就会出现很慢,下面我们来看mysql千万...