STM32 CAN通信之二:正常模式
昨天测试了CAN通信的环回模式,今天逻辑分析仪到手了,借助这一神器完成了今天的CAN通讯之正常模式数据收发。对于CAN通讯正常模式来说,没有逻辑分析仪或者CAN盒(某宝上可以买到),分析数据,想要调通的话只能看运气了,有了工具就可以轻松的看到数据的收发过程。
本次正常模式的测试是用两块板子进行测试,一块板子(STM32F103RET6)用于发送数据,另一块板子是正点原子的战舰开发板(STM32F103ZET6)用于接收数据(中断方式接收)。两块板子的CAN_H和CAN_H相连,CAN_L和CAN_L相连。
发送的板子STM32CubeMX配置及代码与前面的环回模式几乎一样,唯一不同的是初始化模式不同。请参考CAN通讯之一,这里不再赘述。
对于接收的开发板,战舰V3,其配置过程与前面环回模式也类似,只是第一步选择的芯片不一样。CAN外设参数配置与前面一样。
同样的,也需要在can.c中添加过滤器配置的代码以及接收中断服务函数。
在main.c中添加以下代码即可,至此,接收部分配置完成,添加的代码量很少。
因为在本例程中没有配置串口,所以在接收中断的地方设置断点,方便查看接收的数据。发送数据的板子在主函数while循环中间隔10ms发送一次数据,接收的开发板中断方式接收。
发送的数据:
战舰V3开发板接收的数据:
逻辑分析仪采集到的数据:
发送数据与接收数据完全吻合。当然,用战舰开发板发送数据,用另一块板子接收数据也行,需要稍微修改一下代码,读者可自行去测试。
特别注意事项:CAN通信芯片是5V的,我刚开始调试的时候没有找到两根USB线供电,其中一块开发板使用J-LINK直接供电的,通信一直没有成功,后来将两块开发板都用5V供电,通讯正常。
源代码:
链接:https://pan.baidu.com/s/1L56eFRBkvNvfMQU9XQdaUA
提取码:14nl
STM32 CAN通信之二:正常模式相关推荐
- openmv和stm32串口通信完成二维码识别
openmv和stm32串口通信完成二维码识别 文章目录 前言 一.所用的硬件: 二.openmv端 2.stm32端 总结 前言 注:我只是个大一的小白,本文只完成基本功能,希望能帮助有困惑的人(我 ...
- STM32——串口通信
STM32--串口通信 宗旨:技术的学习是有限的,分享的精神是无限的. 一.异步串口通信协议 STM32 的串口非常强大,它不仅支持最基本的通用串口同步.异步通信,还具有 LIN 总线功能(局域互联网 ...
- 安装STM32CubeMX,stm32串口通信
目录 一.串口通信和RS-232标准 1.串口通信 波特率 数据位 停止位 奇偶校验 2.RS-232标准 二.安装STM32CubeMX,搭建STM32的开发环境 1.安装jdk 2.安装STM32 ...
- 探究 STM32 的三种 BOOT(启动) 模式并实例验证
目录 一.什么是 Boot 模式 二.实例验证 三.总结 四.参考资料 说明 STM32 的三种 Boot 模式的差异,并在之前第11-12周"C语言各种变量的存储地址"作业代码基 ...
- STM32串口通信详解以及通信异常或者卡死常见问题分析
STM32串口通信详解以及通信异常或者卡死常见问题分析 目录 STM32串口通信详解以及通信异常或者卡死常见问题分析 一.常见的异常问题 二.STM32的串口简介 1.串口的通讯方式 ①按数据传输方向 ...
- 【STM32串口通信】
STM32串口通信 学习计划 一.串口通信知识点 二.硬件部分 1.所需硬件 2.部分硬件连接 三.阻塞式 0.串口阻塞式发送和接收概念 1.STM32CUBEMX配置 2.编写阻塞式串口发送与接收代 ...
- STM32串口通信USART练习
文章目录 一.STM32的USART介绍 二.USART串口通信实践 1.任务要求 2.所用器材 3.主要代码 4.代码解析 三.效果展示 四.总结 五.参考资料 一.STM32的USART介绍 通用 ...
- Android10.0 Binder通信原理(二)-Binder入门篇
摘要:本节主要来讲解Android10.0 Binder的设计原理,如何设计一个Binder通信 阅读本文大约需要花费15分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分 ...
- STM32串口通信中使用printf发送数据配置方法 开发环境 Keil
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 已有 12456 次阅读2011-6-29 23:29 | 在STM32串口通信程序中使用printf发送数据, ...
最新文章
- vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...
- 区块链和智能合约的关系
- 命令行参数tail c语言,osg学习笔记2, 命令行参数解析器ArgumentParser
- 机器学习判定模型与生成模型区别
- PHP几种常见魔术方法与魔术变量解析
- Jquery中获取表单提交时不确认个数元素的个数与值的方法
- HTML显示xml中的CDATA内容
- OpenCV3学习笔记二:图像的掩膜操作
- 计算机一级考试无法显示评分,计算机一级评分各题标准
- libvirt vnc花屏_centos6.5下VNC花屏解决方法
- redis源码剖析(五)—— 字符串,列表,哈希,集合,有序集合
- C语言--使用fopen、fgets、fprintf(标准IO)实现注册、登录、功能--(完整代码-分文件)
- photoshop改变图片大小,不改变像素
- Linux vi/vim教程
- 9款最新炫酷HTML5/CSS3应用推荐
- LinuxCentOS 7镜像下载
- 国内的云主机靠谱吗?万网如何?互联网创业产品选择云主机还是租用独享服务器合适?
- be 动词 和 一般动词的过去式
- matlab拟合公式不准确,Matlab拟合函数误差:函数值和YDATA大小不相等
- 唐巧总结的40个国人iOS技术博客