51单片机的can 总线是同一个串口吗?Can 总线计算机如何配置通信模块程序?提问:总线 communication如何实现两个节点互相发送和接收?例如socketcan插件使用了下面的plugin.json内容:键值必须和接口名CAN 总线 adapter一起传递给QCanBus::createDevice()。
1、做过CAN 总线编程的单片机师傅请进前两周是不可能学会CAN 总线的。哈哈。但是如果你在别人的基础上做自己的简单应用,完全没有问题。最快的方法是买一个带CAN的开发板,里面有CAN的套路。之前做过CAN 总线的。就像你说的,控制几个灯很简单。我还想告诉你,如果你的CAN模块是单片机的外设,最好买同系列的单片机开发板,这样会更快。(就算不买也可以下载开发板的资料,呵呵)如果没有的话,就要花更多的时间了。
2、QtCAN编程1-CAN 总线整体介绍控制器局域网(CAN)是一个vehicle 总线标准,旨在允许微控制器和设备在没有主机的情况下在应用程序中相互通信。它是一种基于消息的协议,最初是为汽车中的多通道电线设计的,但也用于许多其他情况。CANBusAPI提供了一些访问CAN设备的通用API:很多供应商提供了各种API供CAN设备访问。QtSerialBus模块支持CAN 总线 plug-in的设置:如果Qt提供的插件不适合所需的目标平台,可以实现定制的CAN 总线 plug-in。
定制插件必须部署到$QTDIR/plugins/canbus。每个插件必须定义一个键值,用于加载插件。这是通过一个小的json文件完成的。例如socketcan插件使用了下面的plugin.json内容:键值必须和接口名CAN 总线 adapter一起传递给QCanBus::createDevice()。QCanBus使用QCanBusFactoryV2接口来加载和实例化插件,每个插件都必须将其实现为中央入口点。
3、51单片机接收CAN 总线一次数据需要多长时间?这个不用担心。9600的速度太低了。接收/发送一位需要104us。你发送和接收超过一个字节吗?如果是几十个字节呢?但这都是硬件处理,看你中断多久程序,这个只有你自己知道。你要解决的就是串口不要干扰定时器中断,把定时器中断设置成高优先级,把串口中断设置成低优先级,就这样。
4、关于一条CAN 总线上各节点的 程序问题每个节点都应该有唯一的ID,否则无法区分每个节点。因此,每个节点的程序中的消息ID应该是不同的。可以在程序的设计中制作ID,用其他方式设置,比如通过串口。这样就可以使用相同的程序,但是后面还需要一个过程,就是设置模块ID。我不太懂软件,但是一楼的观点绝对是错误的。我能告诉你的是,第一,CAN 总线的标识符不是节点的ID。在CAN系统中,节点不使用任何关于系统配置的信息(例如站地址)。
文章TAG:总线 程序 控制 can总线51程序