c 串口读写数据实例解析
一 前记
程序员就是不断地砌砖头,然后用砖头,把砖头模块化,用的时候直接调用,能够节省很多精力。
二 实例:
1 #include <stdio.h>
2 #include <unistd.h> //Used for UART
3 #include <fcntl.h> //Used for UART
4 #include <termios.h> //Used for UART
5
6 typedef unsigned char uint8;
7
8 void dump8(uint8 *buf, int len)
9 {
10 for(int icnt = 0; icnt < len; icnt++)
11 {
12 printf("0x%x,",buf[icnt]);
13 }
14
15 printf("\n\t");
16 }
17
18
19 int main(void)
20 {
21 int data_num = 0;
22
23 printf("\nUART test\n\n");
24
25 int uart0_filestream = -1;
26
27 uart0_filestream = open("/dev/ttyUSB3", O_RDONLY | O_NOCTTY | O_NDELAY); //Open in non blocking read/write mode
28 if (uart0_filestream == -1)
29 {
30 printf("Error - Unable to open UART. Ensure it is not in use by another application\n");
31 return -1;
32 }
33
34
35 struct termios options;
36 tcgetattr(uart0_filestream, &options);
37 options.c_cflag = B921600 | CS8 | CLOCAL | CREAD; //<Set baud rate
38 options.c_iflag = IGNPAR;
39 options.c_oflag = 0;
40 options.c_lflag = 0;
41 tcflush(uart0_filestream, TCIFLUSH);
42 tcsetattr(uart0_filestream, TCSANOW, &options);
43
44 printf("init complete, listening...\n\n");
45
46
47 while(1)
48 {
49
50 if (uart0_filestream != -1)
51 {
52 unsigned char buf1[2];
53 int n = read(uart0_filestream, buf1, 2);
54 if ((n > 0) && (buf1[0] == 0xff) &&(buf1[1] == 0xff))
55 {
56 unsigned char buf2[2];
57 dump8(buf1,2);
58 n = read(uart0_filestream, buf2, 2);
59 dump8(buf2,2);
60 if (n > 0 && (buf2[0] == 0x40) &&(buf2[1] == 0x01))
61 {
62
63 unsigned char buf3[640];
64
65 data_num = read(uart0_filestream, buf3, 640);
66
67 if(data_num > 0)
68 {
69
70 dump8(buf3,data_num);
71 }
72
73 }
74 }
75
76 }
77
78 }
三 总结:
运行一下,就知道结果了。
c 串口读写数据实例解析的更多相关文章
- 如何用Java语言向串口读写数据
原作者:赛迪网作者 shihuchen ,我在他的基础上进行了部分修改 [赛迪网讯]串口, RS-232-C(又称EIA RS-232-C,以下简称RS232)是在1970年由美国电子工业协会(EIA ...
- Datatables插件1.10.15版本服务器处理模式ajax获取分页数据实例解析
一.问题描述 前端需要使用表格来展示数据,找了一些插件,最后确定使用dataTables组件来做. 后端的分页接口已经写好了,不能修改.接口需要传入页码(pageNumber)和页面显示数据条数(pa ...
- 在Linux中如何使用命令进行RS-232串口通信和数据包解析
文章首发于浩瀚先森博客 1. 获取串口号 在Linux系统中一切皆为文件,所以串口端口号也不例外,都是以设备文件的形式出现.也就是说我们可以用访问文本文件的命令来访问它们. a. 一般串口都是以/de ...
- 实例解析Docker数据卷+数据卷容器+flocker数据共享+DockerHub操作
Docker内部数据管理和Docker之间的数据共享为数据卷和数据卷容器,实例解析1.将本地的文件作为容器的数据卷,2.数据卷flocker插件实现容器集群(或者Docker Swarm)的数据共享3 ...
- Java实现RS485串口通信,发送和接收数据进行解析
最近项目有一个空气检测仪,需要得到空气检测仪的实时数据,保存到数据库当中.根据了解得到,硬件是通过rs485进行串口通讯的,需要发送16进制命令给仪器,然后通过轮询来得到数据. 需要先要下载RXTX的 ...
- json-lib-2.4-jdk15.jar所需全部JAR包.rar java jsoup解析开彩网api接口json数据实例
json-lib-2.4-jdk15.jar所需全部JAR包.rar java jsoup解析开彩网api接口json数据实例 json-lib-2.4-jdk15.jar所需全部JAR包.rar ...
- 第十六章 IIC协议详解+UART串口读写EEPROM
十六.IIC协议详解+Uart串口读写EEPROM 本文由杭电网友曾凯峰根据小梅哥FPGA IIC协议基本概念公开课内容整理并最终编写Verilog代码实现使用串口读写EEPROM的功能. 以下为原文 ...
- android基础---->JSON数据的解析
上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...
- [Reprint]C++普通函数指针与成员函数指针实例解析
这篇文章主要介绍了C++普通函数指针与成员函数指针,很重要的知识点,需要的朋友可以参考下 C++的函数指针(function pointer)是通过指向函数的指针间接调用函数.相信很多人对指向一般 ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
随机推荐
- 面试谈薪4点博弈策略,将20k谈到28k
薪资谈判本质上是一种博弈,无论是表面谈得好还是实质上谈得好,都需要掌握一些策略 面试薪资怎么谈,您目前的薪资是20k,如果您想要提高到28k,那么请花两分钟看完以下内容.薪资谈判本质上是一种博弈,无论 ...
- Spring自带的这11个工具类,真香!
前言 最近有些小伙伴,希望我分享一些好用的工具类,帮他们提升开发效率. 今天这篇文章专门跟大家一起总结一下,Spring框架本身自带的一些好用的工具类,希望对你会有所帮助. 1 Assert 很多时候 ...
- public private protected 的辨析
一. public 1.作为类内成员的访问修饰符时,由public修饰的成员数据或者成员函数可以在类外(即派生类内以及实例化的对象后)以及类内进行随意访问 可以看到public成员Data在类外是可访 ...
- 洛谷P1009 阶乘之和
捏妈第三节的题单名不是循环结构吗,直接出了第八节的高精度大数计算,紧急学习 对于较大数的加减乘除阶乘等,C/C++原生的数据类型是存储不了的(即便用longlong),直接计算会出现数据移除成负数的结 ...
- .NET 云原生架构师训练营(模块二 基础巩固 MVC终结点)--学习笔记
2.3.4 Web API -- MVC终结点 MVC与MVVM 模型绑定 自定义模型绑定器 模型验证 返回数据处理 MVC与MVVM MVC ASP.NET Core MVC 概述:https:// ...
- NC50505 二叉苹果树
题目链接 题目 题目描述 有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点.这棵树共N个节点,标号1至N,树根编号一定为1. 我们用一根树枝两端连接的节点编号描述一根树枝的位置 ...
- 51单片机(STC89C52)在Ubuntu下的开发
简介 都是8051衍生的8位单片机, STC单片机有89/90/10/11/12/15这几个大系列, 每个系列的特点如下 89系列是传统的8051单片机, 烧录方法有区别, 但是功能上可以和AT89系 ...
- Java网络编程之使用URL类
Lesson: Working with URLs 使用URLs 整理自Oracle官方文档. URL is the acronym for Uniform Resource Locator. URL ...
- AIGC程序员效能提升之道
得益于IT产业近几年的繁荣,老杨所在公司的业务也出奇的兴隆,每天干不完的工作背后,也意味着健康的消耗和体重的不断增加. 曾记否,刚毕业的老杨体重刚刚堪堪破百,同事们经常调侃他说是一阵风就能吹走,经过了 ...
- 【Android 逆向】【攻防世界】easyjni
1. apk 安装到手机,提示需要输入flag 2. jadx打开apk public class MainActivity extends c { static { System.loadLibra ...