杰发科技AC7840——CAN通信简介(1)

简介

7840支持4路CAN-FD

Demo调试

官网下载demo,烧录,打开串口发现打印如下。原因是没有连接CAN盒子,总线错误。

CAN收发器端波形 

CAN_L有信号,CAN_H没有

波形放大

GPIO端波形

有持续波形输出

波形放大查看,有50Us延迟(不排除测试仪表的延迟原因)

接CAN盒子

以图莫斯为例(便宜好用,500-1200RMB)

总线协议使用CAN,可以快速探测找到仲裁域波特率为500K

双击进入数据展示界面

重启发现串口没有数据打印了

测试CAN1

Demo板子的CAN1因为接了LED灯暂时不能使用为CAN

测试CAN2

CAN2接上之后,将代码的CAN2开启,代码写的还行,可以在这里直接修改使用的CAN通道

编译烧录后没有信号

难道是没有CAN收发器的原因??

于是把CAN2的GPIO引脚接在CAN0引脚上,此时CAN0没有初始化。

发现有信号了。

仔细一看,是PC16,也就是RX有信号,感觉很奇怪,demo只写了发送,没有做接收处理。

于是怀疑是高低电平的原因,把CANRX接在3.3V的电源上,果然有了同样的信号。

在此有了疑问,为什么直接给3.3V电源就能产生RX信号,需要和大佬请教下。

通过断点发现,在走完这一行代码后开始有接收信号出现。

分析CANRX出现的原因

留坑 后续再填

分析CAN2没有信号的原因

需要配置内部上拉,对上拉理解更深了。

GPIO_DRV_SetPullSel(PORTC, 16U,PORT_INTERNAL_PULL_UP_ENABLED);
GPIO_DRV_SetPullSel(PORTC, 17U,PORT_INTERNAL_PULL_UP_ENABLED);

CAN0在硬件上做了上拉

测试CAN3

同样上拉后,有数据

至此,Demo的测试已经OK,下一步看看CAN的细节

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-13 09:36:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-13 09:36:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-13 09:36:05       82 阅读
  4. Python语言-面向对象

    2023-12-13 09:36:05       91 阅读

热门阅读

  1. 【排序算法】之堆排序

    2023-12-13 09:36:05       66 阅读
  2. leetcode做题笔记2454. 下一个更大元素 IV

    2023-12-13 09:36:05       63 阅读
  3. SQL进阶 | 三值逻辑与NULL

    2023-12-13 09:36:05       57 阅读
  4. 【数据结构和算法】递增的三元子序列

    2023-12-13 09:36:05       49 阅读
  5. 数据挖掘目标(价格预测挑战)

    2023-12-13 09:36:05       56 阅读
  6. mysql全文索引的查询扩展技术

    2023-12-13 09:36:05       62 阅读
  7. 01.Git分布式版本控制工具

    2023-12-13 09:36:05       53 阅读
  8. qt+day4

    qt+day4

    2023-12-13 09:36:05      58 阅读
  9. 【clickhouse】ck远程访问另一个ck

    2023-12-13 09:36:05       58 阅读
  10. SpringDataRedis 基本使用

    2023-12-13 09:36:05       40 阅读
  11. JeecgBoot jmreport/queryFieldBySql RCE漏洞复现

    2023-12-13 09:36:05       65 阅读
  12. 电脑入门基础知识

    2023-12-13 09:36:05       62 阅读
  13. 如何在Go中使用结构体标签

    2023-12-13 09:36:05       60 阅读