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应用系统开发中,文件上传和下载功能是非常常用的功能 ...
随机推荐
- Java - CodeForces - 1230A
题目: Dawid有了 4 包糖果.第 i 包里面有 Ai 个糖果. Dawid想把这四包糖果送给两个朋友,能否让两个朋友收到相同数量的糖果?注意,不能拆开任何一包糖,不能把糖果留给自己或扔掉,四包糖 ...
- .NET Core开发实战(第3课:.NET Core的现状、未来以及环境搭建)--学习笔记
03 | .NET Core的现状.未来以及环境搭建 .NET Core的现状 .NET Core 的应用场景:桌面端.Web端.云端.移动端.游戏.IOT 和 AI 云端指的是 .NET Core ...
- JOISC 2023 纪录
记录一下 JOISC 2023 的做题记录 Day1 T1 Two Currencies 给定一棵树,在边上有总计 \(m\) 个检查站,经过一个检查站需要叫 \(1\) 枚金币或者若干枚银币.\(Q ...
- 计网学习笔记九 Routing Fundamentals
在这一讲开始讲路由器的控制平面.简单介绍了routing,两个最小cost算法. 参考看的文章: VC网络中的路由 VC网络和数据报网络中路由的区别:Differences between Virtu ...
- NC24263 USACO 2018 Feb G]Directory Traversal
题目链接 题目 题目描述 奶牛Bessie令人惊讶地精通计算机.她在牛棚的电脑里用一组文件夹储存了她所有珍贵的文件,比如: bessie/ folder1/ file1 folder2/ file2 ...
- CF505C Mr. Kitayuta, the Treasure Hunter
题目链接 题目 见链接. 题解 知识点:线性dp. 常规的状态 \(dp[i][j]\) 表示为到第 \(i\) 个岛上一步走了 \(j\) 能得到宝藏的最大值,会炸空间.注意到步数是就算从 \(1\ ...
- SSD 接口简介——M.2/U.2
一,M.2 - the Next Generation Form Factor (NGFF) 从名字上可以看出M.2在最初主要关于新一代尺寸的规格,它定义了以下几种尺寸,类似于内存条的样子. M.2 ...
- Kafdrop
Kafdrop 是一个用于查看 Kafka 主题和浏览消费者组的 Web UI docker run -d --rm -p 9000:9000 \ -e KAFKA_BROKERCONNECT=hos ...
- Vue+ElementUI实现用户管理前后分离实战二:API接口篇
项目介绍 上一篇介绍了前端相关实现代码和效果,本篇则介绍后端接口API如何实现. :) 上一篇地址: https://blog.csdn.net/IndexMan/article/details/11 ...
- 解决:EXP-00003: 未找到段 (0,0) 的存储定义报错
问题说明 DB服务器oracle版本:11.2.0.4.0 最近在客户端用exp命令导出部分表时报错,如题.搜索了一下,找到以下解决方案: 问题原因 Oracle 11g 有一个参数deferred_ ...