找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5050|回复: 15
打印 上一主题 下一主题
收起左侧

CAN通讯如此简单,初次接触CAN 附单片机程序

  [复制链接]
跳转到指定楼层
楼主
      串口通讯经常用到,CAN通讯没有接触过,一直感到很神秘。。。。。。
今天进行了CAN的实验,没想到如此简单。
      A板发送ID+自定义数据+增量自加1  接收到B板数据后由串口输出
      B板发送ID+自定义数据+增量自加1  接收到A板数据后由串口输出
      硬件准备:CAN收发器模块,一块小小的板子,元件没几个;
                      两个单片机实验板,我用的是自制的STC32G12K128最小板和一个STC官方实验板;
                      一根网线;
                      当然还要有电脑;

       代码下载:全部例程源码和原理图 CAN2双板测试.7z (369.96 KB, 下载次数: 379)
      软件准备:编译软件KEILC251;下载及串口通讯软件STCISP6.90
让我们来开始实验吧!
      首先更改例程代码,两块板子A板和B板均使用CAN2进行通讯,所以例程中做如下设置:
      CAN2初始化要点:地址;CAN2引脚;速率;
      A板地址:CAN2_ID = 0x012A;    B板地址:CAN2_ID = 0x022A;
      CAN2引脚:P_SW3 = (P_SW3 & ~(3)) | (1);  // 0x00:P0.2,P0.3 0x01:P5.2,P5.3  0x02:P4.6,P4.7  0x03:P7.2,P7.3
      切换到P5.2,P5.3引脚上;
要使TJA1050工作,还要让其第8脚接GND,所以代码中还要将P5^4置0:先定义引脚 sbit CAN_S    = P5^4;        再在主函数中加入CAN_S=0;
或者直接将第8脚接GND.
实验照片:



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:468878 发表于 2022-8-22 08:10 | 只看该作者
跟485差不多。
回复

使用道具 举报

板凳
ID:961114 发表于 2022-8-22 11:17 | 只看该作者
感谢楼主的精心测试,接下来会有开源示波器开始赠送
STC-老梁开源示波器-480*320显示-STC32G12K128实现
回复

使用道具 举报

地板
ID:961114 发表于 2022-8-22 11:21 | 只看该作者
STC 目前的 重点 是 CAN 通信,并且是  标配 2组 独立的 CAN, 也建立了 CANOpen + FreeRTOS 的完善 汽车电子生态 ,已大量用于汽车电子 http://www.stcmcudata.com/OpenSo ... DIP64-DEMO-CODE.ZIP
回复

使用道具 举报

5#
ID:123289 发表于 2022-8-22 17:17 | 只看该作者
CAN特点:
优点:适合多路通讯,硬件防碰撞。队列发送(当高级通讯时,低级的会自动等待)。
缺点:波特率计算复杂
         通讯数据长度呆板。
         数据发送不一定适时(可能会有等待)
         
回复

使用道具 举报

6#
ID:861279 发表于 2022-8-24 10:58 | 只看该作者
can通信可以一边发送一边接受吗?
回复

使用道具 举报

7#
ID:68189 发表于 2022-8-26 10:46 | 只看该作者
叶开游戏 发表于 2022-8-24 10:58
can通信可以一边发送一边接受吗?

不可以的,
CAN通讯是半双工的。收发数据要分时进行。不管CAN网络上挂多少设备,在同一时刻只能有1个发送数据。如果有多个需要同时发送则只有优先级别高的先发送,其它等待。
回复

使用道具 举报

8#
ID:961114 发表于 2022-8-29 11:18 | 只看该作者
楼主的优质测评帖,赠送简易示波器一套
回复

使用道具 举报

9#
ID:961114 发表于 2022-8-29 11:19 | 只看该作者
STC32位8051全球大学计划开源示波器USB-CDC送电脑显示,源程序,原理图, 说明书    
http://www.stcmcudata.com/OpenSo ... encode-20220819.ZIP
STC32G12K128数据手册  
http://www.stcmcudata.com/STC8F-DATASHEET/STC32G.pdf;       
STC-ISP 显示 软件     
http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.90F.zip
回复

使用道具 举报

10#
ID:203661 发表于 2022-8-29 14:24 | 只看该作者
啊,STC也这么卷了,居然有CAN口了
回复

使用道具 举报

11#
ID:961114 发表于 2022-9-7 16:56 | 只看该作者
lhzw2001 发表于 2022-8-29 14:24
啊,STC也这么卷了,居然有CAN口了

STC32G12K128   32位除,16位除,端口的位操作, 2组 CAN 就值RMB4.5, 其他白送,
USB, FLASH 128K, SRAM 12K, 32位 8051,  高精准12位ADC, DMA 支持(TFT彩屏, ADC, 4组串口, SPI, I2C )
回复

使用道具 举报

12#
ID:293108 发表于 2022-9-14 23:54 | 只看该作者
STC庄伟 发表于 2022-8-22 11:21
STC 目前的 重点 是 CAN 通信,并且是  标配 2组 独立的 CAN, 也建立了 CANOpen + FreeRTOS 的完善 汽车电 ...

oled读取can id和数据遇到问题,提取出来的数不一致,也不知道要在哪个地方去获取,这个对于新手头大。

e14c9e806013e7dc97b2e4620ba53cd.jpg (302.69 KB, 下载次数: 81)

STC32G

STC32G

解析.PNG (55.2 KB, 下载次数: 89)

显示数据或id

显示数据或id
回复

使用道具 举报

13#
ID:5212 发表于 2022-9-20 16:51 来自手机 | 只看该作者
chentang 发表于 2022-9-14 23:54
oled读取can id和数据遇到问题,提取出来的数不一致,也不知道要在哪个地方去获取,这个对于新手头大。

兄弟分享下你的程序看看呢。谢谢!
回复

使用道具 举报

14#
ID:1049379 发表于 2022-10-27 13:04 | 只看该作者
希望多介绍CAN通讯的知识。
回复

使用道具 举报

15#
ID:1060327 发表于 2023-1-19 22:47 来自手机 | 只看该作者
两个收发模块是通过棕线和白线连接的嘛?照片看不清楚
回复

使用道具 举报

16#
ID:408539 发表于 2023-1-20 21:57 | 只看该作者
STC 32G实验验箱例程来的
这个只是简单收发标准帧的例程
要是并在其他CAN总线上会对
总线上的其他设备造成信号拥堵
没有加入仲裁机制,,要是几个设备同时发送
总线上的数据就会乱其他Can设备就不能正常接收
这段数据
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表