linux平台,程序接收一个字符串和一个数字,字符串为发送给arduino的数据,数字为返回的字符串的长度,实际长度会用在这个数乘5

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define FALSE -1

#define TRUE 0

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

//open port

int fd = open("/dev/ttyACM0", O_RDWR | O_NOCTTY);

if(FALSE == fd){

perror("cant't open port\\n");

exit(1);

}

//set port

struct termios options, optionsOld;

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

perror("SetupSerial 1");

exit(1);

}

bzero(&options, sizeof(optionsOld));

tcflush(fd, TCIOFLUSH);

options.c_cflag |= (CLOCAL | CREAD);

//设置数据位

options.c_cflag &= ~CSIZE;

options.c_cflag |= CS8;

//偶校验

options.c_iflag |= (INPCK | ISTRIP);

options.c_cflag |= PARENB;

options.c_cflag &= ~PARODD;

//19200波特率

cfsetispeed(&options, B38400);

cfsetospeed(&options, B38400);

//1个停止位

options.c_cflag &= ~CSTOPB;

//原始数据输出

options.c_oflag &= ~OPOST;

options.c_cc[VTIME] = 0;

options.c_cc[VMIN] = 1;

tcflush(fd, TCIOFLUSH);

tcsetattr(fd, TCSANOW, &options);

//send data

int sendLen = write(fd, argv[1], strlen(argv[1]));

printf("send: %d\\n", sendLen);

//read data

char readC[1];

readC[0] = ' ';

int i = 0, j = strlen(argv[2]);

//usleep(600000)

//get resultStr sum

int resStrSum = 0;

for(i=0; i

resStrSum = resStrSum*10+argv[2][i]-48;

}

printf("%d\\n", resStrSum);

char *readStr = (char *)malloc(sizeof(char)*resStrSum*5);

i = 0;

while(read(fd, readC, 1)){

if(readC[0] != '\\r'){

readStr[i] = readC[0];

putchar(readC[0]);

i++;

}else{

break;

}

}

readStr[i] = '\\0';

printf("%s\\n", readStr);

close(fd);

}

linux 串口 arduino,linux通过串口对arduino读写相关推荐

  1. linux 哪个进程在使用串口_Linux内核的整体架构

    转载自蜗窝科技 Linux内核的整体架构​www.wowotech.net 作者:wowo发布于:2014-2-21 13:23 分类:Linux内核分析 0. 转载者说在前面的话 转载目的: 能够让 ...

  2. arduino pmw 串口 字符串_ESP32 Arduino开发:串口(Serial port)

    基本使用: ESP32有三个串口,分别是Serial.Serial1.Serial2,下面对基本使用做个示范: 同Arduino原版的串口一样Serial.Serial1.Serial2是在Hardw ...

  3. linux can总线接收数据串口打包上传_关于串口,你需要知道这些!!

    嵌入式设备在电路中交换信息的时候必须通过共享一个通用的协议.现在嵌入式系统中已经定义了数百种通信协议来实现数据交换,一般来说可以将其分为两类:并行或串行. 并行传输数据是指同时传输多个数据位,它们通常 ...

  4. linux设备驱动之串口移植,Linux设备驱动之UART驱动结构

    一.对于串口驱动Linux系统中UART驱动属于终端设备驱动,应该说是实现串口驱动和终端驱动来实现串口终端设备的驱动.要了解串口终端的驱动在Linux系统的结构就先要了解终端设备驱动在Linux系统中 ...

  5. NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号

    NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号 1. EC20模块连接 2. Linux内核配置 3. 交叉编译PPP 4. 拨号脚本 5. 进行拨号 1. EC20模块连接 在 ...

  6. Linux系统编程四:串口编程,控制LED和蜂鸣器

    目录 一.概述 二.串口初始化 2.1 读取当前串口的参数 参数结构体 2.2 波特率相关的函数 2.3 清空串口缓存 2.4 设置串口参数 三.串口通信 四.控制LED和蜂鸣器 五.总结 一.概述 ...

  7. Arduino + RFID 读取 IC 卡 Arduino uno中获得RFID的UID 并通过串口转发RFID卡号

    RFID简介:射频识别即RFID(Radio Frequency IDentification)技术,又称无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定 ...

  8. linux设备驱动,tty串口编程 如何查看linux下串口是否可用?串口名称等

    如何查看linux下串口是否可用?串口名称等? http://zhidao.baidu.com/question/419148559.html 查看串口是否可用,可以对串口发送数据比如对com1口,e ...

  9. SoftwareSerial库的使用——Arduino软件模拟串口通信

    除HardwareSerial外,Arduino还提供了SoftwareSerial类库,它可以将你的其他数字引脚通过程序模拟成串口通信引脚. 通常我们将Arduino UNO上自带的串口称为硬件串口 ...

  10. socat 虚拟串口在 linux OS中如何实现?

    socat虚拟串口工具 用途:linux socat 将2个串口通过虚拟的方式连接起来,这样就可以:直接对串口程序进行调试了. 对串口程序进行调试,不再需要外部串口. Win OS Win com0c ...

最新文章

  1. matlab二维画图函数汇总--论文,数学建模中使用
  2. 迅雷第四季度净亏损3240万美元 环比亏损幅度扩大
  3. Scala中的while循环
  4. 利用二分法解决 leetcode 378. Kth Smallest Element in a Sorted Matrix
  5. vs 下如何调试js
  6. NOIP2018游记题解
  7. 如何使用动软代码生成器连接oracle生成数据库设计文档
  8. DialogBoxParam()在动态库调用中创建模式对话框
  9. 为什么acdsee服务器怎在运行,为何打开网页时会出现安装acdsee 5.0.1 powerpack
  10. CADD课程学习(2)-- 靶点晶体结构信息
  11. BP神经网络的原理及简单应用
  12. 723. PUM(DAY 13)
  13. html5 在线设计,推荐十款非常优秀的 HTML5 在线设计工具
  14. 《JavaScript学习笔记》
  15. zoj 2576 Queen Collisions
  16. seaborn小提琴图
  17. 使用Unity调用派样机技术小结
  18. python培训班 北京-终于知道北京python基础培训机构
  19. R语言包——tinytex的安装
  20. [bzoj 4808]马

热门文章

  1. 汇编语言使用GPIO模拟IIC通信
  2. 内构函数java_图灵学院笔记-java虚拟机底层原理
  3. 【校园卡】更新联通校园卡套餐海报及常规操作,校园卡最新消息及选购建议,增加评论功能...
  4. 那些有趣/用的 Python 库
  5. 口碑、银盒子相关功能是否支持问题
  6. java queue toarray_Java PriorityBlockingQueue toArray()用法及代码示例
  7. Unity游戏安卓和苹果游戏中植入广告增加收入
  8. Pubwin EP 正式版完整安装全程-数据备份
  9. trun off PInvokeStackImbalance
  10. 【没用的小知识又增加了--CCS】