【N32G457 】基于RT-Thread和N32G457的CAN网关

STM32F103C8移植RT_Thread 文章目录一、介绍RT-Thread特点和优势二、在CubeMx上创建项目1.CubeMX 安装Nano pack2.创建项目3.在keil中安装 RT-Thread三、代码修改 一、介绍RT-Thread特点和优势 1.RT-Thread 的主打特性是 “小而美的物联网操作系统”。 所谓“小”体现在 RT-Thread 的体积小,最小资源占用 1.2KB RAM 和 2.5KB flash。RT-Thread 可伸缩、易裁剪的特性,帮助用户在需要一个适用的操作系统的时候,轻松地进行裁减,适应到需要的场景,不 阅读详情

在这里插入图片描述

本文是RT-Thread用户@xiere 原创发布,是用于参加RT-Thread与国民技术联手推出N32G457 RT-Thread设计大赛,原文:https://club.rt-thread.org/ask/article/3422.html

基于RT-Thread系统和N32G457开发板开发的一款CAN网关;硬件部分由W5500以太网模块,2个VP23405MCAN收发器,N32G457主控板等组成;软件部分将一路高速CAN(CAN1控制器)与一路以太网作为网关输入,低速CAN(CAN2控制器)作为网关输出实现隔离收发数据功能。

硬件框架
CAN网关硬件框图.png
硬件框架说明:
如上图所示,硬件部分由W5500以太网模块,VP23405MCAN收发器1,N32G457主控板,VP23405MCAN收发器2等组成;其中:
W5500以太网模块:负责网关输入端网口数据收发功能,采用SPI接口与主控通讯,工作模式为TCPServer
VP23405MCAN收发器1:负责网关输入端高速CAN数据收发功能,通过主控板CAN1控制器进行控制
VP23405MCAN收发器2:负责网关输出端低速CAN数据收发功能,通过主控板CAN2控制器进行控制
N32G457主控板:负责网关输入输出端之间的通讯协议转换
LED灯:用来指示网关数据输入状态以及运行状态,红灯500MS闪烁表示网关运行正常,蓝灯闪烁表示高速CAN有数据输入,绿灯闪烁表示网口有数据输入

软件框架
RT-Thread任务框图.png
软件框架说明:
如上图所示,该项目软件架构主要采用上图所示的几个线程完成,其中:
网口收发线程:负责将网口接收到的数据通过低速CAN发出
网口心跳包发送线程:负责检测客户端是否断开连接,并做好网口重连准备
高速CAN收发线程:负责将高速CAN接收到的数据通过低速CAN发出
低速CAN收发线程:负责将低速CAN接收到的数据通过网口和高速CAN发出

作品完整图片
CAN网关作品图片.png

效果演示视频地址:https://www.bilibili.com/video/BV1mS4y1g7tn/
代码地址: https://gitee.com/xiere/N32G457_Project/tree/master/rt-thread_CAN-gateway

基于RT-Thread的CAN电机驱动板设计 (三)CAN驱动配置与实现 引言 上一篇文章实现了基于rtthread的uart 的DMA接收驱动的配置与使用。下面重点需要完成rtthread对stm32的CAN驱动的配置,由于rtthread默认工程中没有对特定芯片如stm32的CAN驱动的芯片级驱动代码,但是在rtthread的github仓库中有相关的代码,需要我们自己完成配置。因此本文的重点工作是完成stm32的CAN驱动的配置,通过上述流程达到一以贯之的效果,以后再遇到其他协议也可以如此处理。 前期准备 制作好的电机驱动板一块 USB转485模块一个,用来插在PC上实现 阅读详情

相关推荐

STM32三方库 - 网络通信/Mongoose

基于RT-Thread实现STM32的TCP/MQTT网络通信

dxf1971738522的博客 2089

主流 RTOS 评估

1. RT-Thread RT-Thread 是国内出产的一款非常优秀的 RTOS。它和 FreeRTOS 、uCos 等经典 RTOS 最大的不同是:它不仅仅是一个实时内核,还具备丰富的中间层组件。 它提供了一个完整的软件栈解决方案,而不需要用户搜集各种 核心组件 手工从头搭建。 包括以下部分: 内核层:RT-Thread 内核,是 RT-Thread 的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件 / 板

pwl999的博客 9650

2024年【N32G457 】基于RT-Thread和N32G457的CAN网关_n32g435 can采样,oppoGolang面试

在复杂网络系统中,常常设计高、低速两种速率不同的CAN通讯网络,甚至3种不同功能相互独立的CAN子网。以及实现CAN总线与以太网的协议转换,增强工业系统的数据吞吐量并提供广域网互联的可能性。由于CAN总线的优异性能,且低成本、高可靠性、实时性、灵活性、抗干扰能力强等特点,广泛应用于各种自动化控制场景中,尤其在汽车电子、自动控制、电力系统等领域。其中LED灯用来指示网关数据输入状态以及运行状态,红灯500MS闪烁表示网关运行正常,蓝灯闪烁表示高速CAN有数据输入,绿灯闪烁表示网口有数据输入。

2401_84919754的博客 649

rt-thread CAN通信(can dev write data failed!)解决,硬件定时器、以及CANfestival包的使用

rt-thread CAN通信报错,硬件定时器、CANfestival软件包使用

qq_42464322的博客 2701

基于RT-Thread与N32G457的工业物联网UART网关设计与实现

在工业物联网和嵌入式系统开发中,串口通信是连接传感器、PLC等现场设备的基础技术,而协议解析与数据标准化是打通异构设备数据的关键环节。其核心原理在于通过微控制器硬件接口采集原始数据,并利用实时操作系统进行多任务调度与数据处理,最终实现不同协议到统一格式的转换。这项技术的价值在于能够将分散、异构的工业数据汇聚并转化为云端可识别的结构化信息,从而大幅降低服务器处理压力并提升系统集成效率。其典型应用场景包括智能制造、智慧农业、楼宇自动化等领域的设备数据采集与远程监控。本文以RT-Thread实时操作系统和N32G

weixin_42525800的博客 222

【信息科学与工程学】【产品体系】第三十三篇 DPU/smartinic芯片中的学科知识03

需求实现DMA 与流边界检测优化​分级超时状态机(短/中/长)+ 积压计数 + 批量触发DMA 控制器优化​描述符预取(深度 4)+ 中断合并(阈值 8)Fence 语义正确性验证​RTL 断言 + C 语言序列号检测 + 性能对比 + 硬件计数器所有代码均为可综合 Verilog,已在仿真器中通过基本功能测试。在 FPGA 原型上运行上述 RTL,配合 ChipScope 观察 fence 时序在 BlueField-3 上运行 DOCA DPA 测试程序,对比加/不加 fence 的结果。

weixin_49199313的博客 269

【N32G457 】基于RT-Thread和N32G457的CAN网关_n32g435 can采样

在复杂网络系统中,常常设计高、低速两种速率不同的CAN通讯网络,甚至3种不同功能相互独立的CAN子网。确保特定信息网络传输的安全性。但在不改变传统工业总线的前提下,实现不同网络之间的转换,有着迫切的需求。由于CAN总线的优异性能,且低成本、高可靠性、实时性、灵活性、抗干扰能力强等特点,广泛应用于各种自动化控制场景中,尤其在汽车电子、自动控制、电力系统等领域。其中LED灯用来指示网关数据输入状态以及运行状态,红灯500MS闪烁表示网关运行正常,蓝灯闪烁表示高速CAN有数据输入,绿灯闪烁表示网口有数据输入。

2401_84264915的博客 1109

STM32F429阿波罗RTTHREAD的CAN驱动

STM32F429阿波罗 RTTHREAD USBHID和CAN驱动

【名单公布】国民技术MCU RT-Thread设计大赛获奖名单出炉~

亲爱的开发者们: RT-Thread与国民技术联手推出的 国民技术MCU RT-Thread设计大赛到今天终于圆满落幕。本次大赛共吸引了近300位开发者报名,历经三个多月赛程,从报名到审核通过,再到开发设计,最后成功完成自己的作品。各位小伙伴在这过程中遇到过很多困难,也花费了很多心血精力,现在废话不多说,一起来看本次大赛获奖名单吧! ###一等奖(1名) 【N32G457】从0到1打造一个私有化部署的家用式智能告警系统 作者:recan ###二等奖(2名) 【N32G457】基于RT-Thread和N32

rtthreadiotos的博客 2988

DCM、PLL以及DLL等概念及详情

介绍DLL、PLL以及DCM的概念,总结其模块构成、工作原理、相互之间的差异与各自优势。

CLL_caicai的博客 8337

WRF-CHEM 新手向实践(四):化学初始/边界场及namelist设置

这是这个系列的最后一节了,这些经验是自己作为一个半路出家的外行一步步摸索出来的,其中不免有很多理解不到位的地方,但也正是如此,我相信这是目前新手入门wrf-chem最友好的教程之一,希望能对大家有实质性的帮助。本节继续未完成的内容。在mozbc生成化学初始和边界条件之前,还需要先在wrfinput文件中开启化学部分。

qq_42335815的博客 4633

完成一个设计大赛,需要按照什么步骤?

转载于:https://blog.youkuaiyun.com/rtthreadiotos/article/details/124094524?spm=1001.2014.3001.5502 亲爱的开发者们: RT-Thread与国民技术联手推出的 国民技术MCU RT-Thread设计大赛到今天终于圆满落幕。本次大赛共吸引了近300位开发者报名,历经三个多月赛程,从报名到审核通过,再到开发设计,最后成功完成自己的作品。各位小伙伴在这过程中遇到过很多困难,也花费了很多心血精力,现在废话不多说,一起来看本次大赛获奖名单吧

qq_41854911的博客 343

网络攻防实验——网络监听

利用CAIN实现ARP监听。

Trieyes_of_feng的博客 3193

2024年Go最全完成一个设计大赛,需要按照什么步骤?_设计竞赛步骤(1),美团Golang研发岗二面

也欢迎各位在RT-Thread论坛来发表一下获奖感言及参赛体验,让大伙们围观看看比赛过程中的心路历程😆。没有获奖的小伙伴们也别灰心,不久,RT-Thread还将举办更多大赛活动,一起期待吧~ps:更多作品文章,请戳这里:https://club.rt-thread.org/ask/tag/3442.html?又到了人间“四月天”,春暖花开,正是人间最美光景,愿疫情早日散去,一切皆安!###本次大赛完成作品用户(98名)作者:Blues_Jiang。作者:chengjili。

2401_84925335的博客 453

mpu6050原理图_STM32控制 MPU6050 六轴陀螺仪资料汇总

一般使用MPU6050的步骤是先驱动I2C总线,然后初始化MPU6050,从MPU6050读取数据,最后是数据的处理。本文档详细介绍有关MPU6050 三维角度传感器电子陀螺仪使用说明。附件内容提供该 MPU6050模块原理图,配套STM32代码,相关数据手册及参考文档。实物连接图:MPU6050 六轴陀螺仪特点:使用芯片:MPU-6050供电电源:3-5v(内部低压差稳压)通信方式:标...

weixin_39911056的博客 4755

【iOS开发】dyld: Symbol not found: ___chkstk_darwin 问题解决

【iOS开发】dyld: Symbol not found: ___chkstk_darwin 问题解决 Xcode 13.2.1 运行到iOS12.x版本上崩溃报错如下:dyld: Symbol not found: ___chkstk_darwin dyld: Symbol not found: ___chkstk_darwin Referenced from: /private/var/containers/Bundle/Application/A424CEFD-51DB-450E-9D62-B8

wm9028的专栏 6563

【信息科学与工程学】【通信工程】第三百零五篇 网络中的几何/拓扑/离散数学/组合数学 01

矩 accountant 累计。Bluetooth LE广告包。单细胞RNA-seq计数矩阵。梯度AllReduce算法。蛋白质-蛋白质相互作用网络。联邦学习本地epoch数。资本资产定价模型beta。联邦学习客户端采样比例。联邦学习服务器聚合权重。变分量子本征求解器参数。抵押贷款支持证券现金流。数据加载器工作进程数。流水线并行微批次数量。学习感知图像块相似度。边缘设备CPU利用率。ZigBee网络地址。量子近似优化算法参数。宇宙微波背景温度涨落。

weixin_49199313的博客 235

STM32F103ZET6【标准库函数开发】------04五个串口配置实战:从零到一构建多串口通信系统

本文详细介绍了STM32F103ZET6标准库函数开发中五个串口(USART/UART)的配置实战,从硬件引脚识别、时钟树配置到多串口系统整合技巧。通过具体代码示例和调试经验,帮助开发者快速构建稳定的多串口通信系统,适用于工业控制、物联网网关等应用场景。

weixin_29188997的博客 344

RT-thread 中CAN总线的应用

rt-thread CAN应用

qq_41675998的博客 3245

STM32+ESP8266接入OneNet物联网平台全流程

MQTT协议是物联网设备与云平台通信的主流轻量级消息传输标准,其发布/订阅模型天然适配嵌入式资源受限场景;OneJSON作为中国移动OneNet平台定制的数据格式,在标准JSON基础上精简Schema、降低解析开销,显著提升STM32等MCU的处理效率。该技术组合兼顾安全性、低功耗与工程可量产性,广泛应用于环境监测、智能仪表、工业传感器等远程数据采集系统。实际落地需协同完成云平台物模型定义、Token动态认证、MQTT Topic严格构造、AT指令可靠交互及单总线传感器数据融合等关键环节。本文以DS18B2

u5v6w7的博客 1119

【100%通过率】华为OD机试真题 Python 实现【最多组合直角三角形个数】【2023 Q1 | 100分】

有N条线段,长度分别为a[1]-a[n]。 现要求你计算这N条线段最多可以组合成几个直角三角形。 每条线段只能使用一次,每个三角形包含三条线段。

MISAYAONE的博客 1万+

【N32G457 】基于W5500的Webserver数据展示

本文是RT-Thread用户@yukelab 原创发布,是用于参加RT-Thread与国民技术联手推出N32G457 RT-Thread设计大赛,原文:https://club.rt-thread.org/ask/article/3448.html 本来要做的的基于 SDI-12 的传感数据记录器,拿到板子后,发现并不合适;恰好手头有个 W5500 模块,就做了个用于展示传感器数据的 webserver; 基于W5500和Mongoose开发的webserver;硬件部分由W5500模块,N32G457主控

rtthreadiotos的博客 1929

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[嵌入式系统-25]:RT-Thread -12- 内核组件编程接口 - 网络组件 - HTTP编程

RT-Thread 是一个开源的实时操作系统,支持 HTTP 协议的编程。在 RT-Thread 上进行 HTTP 编程可以实现设备与互联网之间的数据通信和远程控制等功能。在 RT-Thread 上配置和初始化网络模块,确保设备可以正常连接到网络。使用 RT-Thread 提供的相关 API,如 socket API 或者相关网络库,建立 HTTP 连接。构建 HTTP 请求报文,包括请求方法、URL、请求头和请求体等信息。发送 HTTP 请求并接收服务器返回的响应,处理响应数据。

文火冰糖(王文兵)的博客 3008

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

RT-Thread系列08——CAN设备(CAN收发)

RT-Thread 使用CAN接口进行收发案例

32Haozi 6297

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

RT-Thread设备和驱动-I/O CAN设备①

CAN 是控制器局域网络 (Controller Area Network, CAN) 的简称,是由以研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。CAN 的连接示意图如下图所示:CAN 总线有如下特点:CAN 总线是可同时连接多个单元的总线。

华为奋斗者精神 2750
上一篇: 【N32G457】基于RT-Thread和N32G457的涂鸦云远程监控
下一篇: [N32G457] 基于RT-Thread和N32G457的简易便捷式可调电压源
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值