代码拉取完成,页面将自动刷新
#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;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。