项目:基于以太网通信,单片机作为客户端,接收CAN-Ethernet的十六进制数据
一、物理连接
二,流程分析
电脑连接CAN分析仪,电脑通过软件USB-CAN把can十六进制数据发到CAN分析仪。CAN分析仪连接CAN转以太网设备,数据通过CAN转以太网设备后,通过网线传送到单片机。这里面,CAN转以太网设置为TCP Client
模式,以CAN转以太网设备作为服务端,服务端IP地址为:192.168.0.7
,端口号为:20001
。单片机作为客户端,向服务端发起连接请求,接受来自服务端的数据。
三,客户端程序
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<errno.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<string.h>#define SERV_IP "192.168.0.7"
#define SERV_PORT 20001
#define ITEMSIZE 3
#define WIDEIMAGE 500int main()
{int cfd,fd;struct sockaddr_in serv_addr;socklen_t serv_addr_len;char readChar[ITEMSIZE],writeChar[1024];int count,j=1;cfd = socket(AF_INET,SOCK_STREAM,0);memset(&serv_addr,0,sizeof(serv_addr)); serv_addr.sin_family = AF_INET;serv_addr.sin_port = htons(SERV_PORT);inet_pton(AF_INET,SERV_IP,&serv_addr.sin_addr.s_addr);connect(cfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr));fd = open("can2.txt",O_RDONLY|O_WRONLY|O_CREAT);while(1){count = read(cfd,readChar,ITEMSIZE);//write(fd,buf,sizeof(buf));if(count==0){break;}readChar[count]='\0';count = sprintf(writeChar, "%02x%02x%02x ", readChar[0]&0x00FF, readChar[1]&0x00FF, readChar[2]&0x00FF);writeChar[count] = '\0';write(fd, writeChar, count);if(count < ITEMSIZE){break;}if(j++%WIDEIMAGE == 0){write(fd, "\n", 1);}} close(fd);close(cfd);return 0;
}
项目:基于以太网通信,单片机作为客户端,接收CAN-Ethernet的十六进制数据相关推荐
- socket网络编程——基于socket通信实现对客户端与服务器间的文件互传
客户端与服务器间的文件互传 基于socket的文件数据互传,将文件中所有的字符一一通过buf进行传递,为了更好地判断文件的 结束,通过添加文件结束标识符"#",当接收端接收到该字符 ...
- DE2-115 以太网通信之一88E1111网卡接收PC数据
想利用手头上的DE2-115 写一个关于以太网通信的驱动,经过了这么多天的实验调试终于有了一些认识. 1.我在观察网卡发送数据与接收数据的过程中发现,我从fpga上的一个网卡发送数据,然后另一个网卡接 ...
- linux消息通信无法接收,求助!Linux基于UDP通信失败,server接收不到消息???...
代码参考<Linux C从入门到精通>,实践的时候发现失败,求助!!! server端代码如下: /*服务器端*/ #include #include #include #include ...
- 基于阿里云物联网平台的设备之间传输十六进制数据
基于阿里云物联网平台的设备之间传输十六进制数据 文章目录 基于阿里云物联网平台的设备之间传输十六进制数据 1. 创建阿里云物联网产品 1.1 创建新的产品 1.2 为产品创建自定义topic 1.3 ...
- 基于PC与单片机串口通信的温度监控系统程序设计
基于PC与单片机串口通信的温度监控系统程序设计 1.系统介绍 1)本系统主要讲解基于PC与单片机串口通信的温度监控系统程序设计(如图1),上位机采用常用的PC机,下位机使用的是STC89C52单片机, ...
- 基于Xilinx artix 7的FPGA高级应用(二):千兆以太网通信(原理篇)
本项目是基于Xilinx Artix7 XC7A35T芯片 以太网芯片选用的是RTL8211EG PHY芯片 MAC 和PHY接口标准是GMII 开发工具是vivado 2018.3 FPGA高级应用 ...
- 基于新塘51单片机的485通信
基于新塘51单片机的485通信 序言 最近有一个项目用新塘的51FB9A单片机做时控开关(上位机控制)控制继电器,但是我原来也没整过485啊,本来以为这玩意很难.没想到才了一些坑之后还觉得挺简单的.这 ...
- Java实例练习——基于UDP协议的多客户端通信
昨天学习了UDP协议通信,然后就想着做一个基于UDP的多客户端通信(一对多),但是半天没做出来,今天早上在参考了很多代码以后,修改了自己的代码,然后运行成功,在这里分享以下代码,也说一下自己的认识误区 ...
- 串口转以太网通信源代码C语言C++编写支持多路转换双向通信支持UDP和TCP客户端
串口转以太网通信源代码C语言C++编写支持多路转换双向通信支持UDP和TCP客户端 提供,带注释,带设计文档 使用说明介绍 1.功能介绍: 完成了多路网口和串口数据转换的功能. 可实现串口接收到的数据 ...
最新文章
- 经典面试题:ES如何做到亿级数据查询毫秒级返回?
- 论文研读:Automatic Temporal Segment Detection and Affect Recognition From Face and Body Display
- java for循环 暂停_类中的2个for循环不想在第一次迭代后迭代c [暂停]
- postman可以测试websocket吗_小海塔罗娱乐测试2021年可以脱单吗?
- 前端实现搜索记录功能
- android触摸指纹会触发按键功能,Android P新特性:利用触摸指纹识别器能阻止手机息屏...
- jq往字符串中插入_jq: dom-插入
- doc2html asp,ASP常见问题及解答(3)-ASP教程,ASP技巧
- ubuntu 11.10 使用 emacs-23.4 开发 erlang 整理之 安装distel
- Mac新手用户需要了解的14个Spotlight搜索技巧
- 将Nokia 6300 Firmware升级到5.5
- lintcode刷题目录
- PHP获取域名及域名IP的方法
- 决策树模型实现冬小麦提取
- 计算机主板北桥芯片的主要作用,介绍一下南北桥芯片的位置及作用
- 动力总成悬置系统刚度及模态有效质量计算公式推导
- Redis客户端Lettuce深度分析介绍
- word插入公式自动编号 #不起作用的解决方案
- 公网访问本地内网web服务器【内网穿透】
- 图片转excel的网站
热门文章
- 程序员面试金典 - 面试题 17.09. 第 k 个数(set优先队列/DP)
- LeetCode 1162. 地图分析(BFS)
- LeetCode 357. 计算各个位数不同的数字个数(DP)
- python桌面快捷图标_Python创建、删除桌面、启动组快捷方式的例子分享
- 12306 抢票项目霸榜 GitHub,标星即将破万
- Python中字符串格式化:%和format
- web基础编程-图片管理网站
- 会议交流|大模型与图学习等知识图谱相关技术实践探索
- 征稿 | “健康知识图谱”投稿通道开启
- 法律规则鬼畜图解||全面易懂的旅游投诉赔偿标准