- 博客(10)
- 收藏
- 关注
原创 【CAN通信实战】STM32 HAL库开发:从配置到调试
本文是一篇STM32 CAN通信实战指南,详细介绍了基于STM32F407和TJA1042收发器的CAN通信配置与实现。主要内容包括: 硬件连接:说明TJA1042引脚连接方式及注意事项,强调终端电阻和共地的重要性 STM32CubeMX配置:详细讲解波特率计算方法和参数设置(分频系数、位时间段等) 代码实现: CAN初始化流程(过滤器配置、中断使能) 发送函数实现(报文格式设置、数据发送) 接收处理(中断配置) 文章提供完整的配置步骤和示例代码,帮助读者快速实现STM32的CAN通信功能,适合项目开发和毕
2026-03-05 14:15:29
568
原创 【CAN通信进阶】数据链路层(下):仲裁机制与错误处理
本文详细介绍了CAN总线通信的核心机制,包括仲裁机制、数据采样和错误处理。CAN采用非破坏性逐位仲裁(CSMA/CA),通过ID优先级解决多节点冲突。位时序划分和同步机制确保无时钟信号的可靠数据传输。文章还分析了5种错误检测方式及恢复机制,包括错误帧和基于TEC/REC计数器的状态机切换。这些机制共同保障了CAN网络的高可靠性和实时性,适用于汽车、工业等关键领域。
2026-02-06 09:44:03
421
原创 【CAN通信进阶】数据链路层(上):帧结构全解析
本文详细解析了CAN数据链路层的五种帧类型及其结构。数据帧是最常用的帧类型,包含帧起始、仲裁、控制、数据、CRC和ACK等段。遥控帧用于请求数据,错误帧用于错误检测和恢复,过载帧用于负载平衡,帧间隔用于分隔不同类型帧。文章还介绍了位填充机制的作用和规则,该机制可防止数据读取错误并保持数据流活跃。通过理解这些帧结构和机制,读者可以掌握CAN协议的数据传输原理和错误处理方式。
2026-02-03 21:02:24
717
原创 【CAN通信进阶】物理层:两根线如何传输0和1
本文深入解析CAN总线物理层的工作原理,重点介绍了差分信号传输机制。CAN总线通过CAN_H和CAN_L两根线的电压差传输数据(高速CAN为0V/2V,低速容错CAN为-1.5V/3V),采用120Ω终端电阻防止信号反射、实现阻抗匹配。文章详细讲解了TJA1050收发器的电平转换原理,以及CAN总线的线与特性(显性电平0可覆盖隐性电平1)。同时指出了常见调试问题(线缆接反、终端电阻缺失)和解决方案,为理解CAN通信奠定了基础。
2026-01-31 10:29:23
660
原创 【CAN基础】万字长文带你理解CAN:从汽车“减肥“说起
摘要: CAN(Controller Area Network)是一种多主方式的串行通信总线,由博世公司研发,广泛应用于汽车电子、工业自动化和新能源领域。其核心优势包括抗干扰能力(差分信号)、错误自我修复和高实时性(优先级仲裁)。CAN通过简化布线(如替代传统点对点连接)显著降低系统复杂度,ISO 11898标准规范了其物理层与数据链路层。从1983年诞生至今,CAN已发展为汽车和工业设备的“神经系统”,并演进至支持高速传输的CAN FD协议。下篇将深入解析CAN物理层的工作原理。
2026-01-28 21:59:18
863
原创 如何使用vscode调试stm32--亲测有效
本文介绍了在Windows和Ubuntu(WSL)环境下使用VSCode调试STM32的开发配置方法。在Windows中,通过安装Arm GNU工具链、Make工具和OpenOCD,配置环境变量后,利用STM32CubeMX生成Makefile工程,再通过VSCode的Cortex-Debug插件进行调试。在Ubuntu(WSL)环境下,通过usbipd-win工具将FireDAP调试器挂载到WSL,安装必要的开发工具后,同样使用VSCode进行调试。两种方法均验证可行,可实现断点调试和变量监控,为STM3
2026-01-23 20:33:04
1029
原创 DBC文件解析
DBC文件在汽车电子和嵌入式系统中非常重要,主要用于定义和描述 CAN总线上的消息和信号。一般我们需要使用canoe,CANalyzer等专业的工具来打开dbc文件,对dbc文件进行配置或者查看。但是作为程序员,可能没有这些工具,我们也可以直接通过vscode打开dbc文件,显示如下。为了工作上的便利,我们需要看懂这份dbc文件。。
2025-07-25 18:58:43
2905
原创 Mac下xcode利用c++连接本地mysql
Mac下用xcode利用c++连接本地mysqlMac下用xcode利用c++连接本地mysql一、参考资料二、提前准备三、过程Mac下用xcode利用c++连接本地mysql在mac系统中连接本地mysql,很少有详细的教程,最近在做mysql的小项目,就遇到了这个问题,在网站上基本上没找到合适的教程,下面把我在连接过程中遇到的问题以及如何解决的分享给大家。第一次写博客,有什么问题请大家多多包涵。一、参考资料Mac下Xcode通过MySQL Connector/C++ 8.0连接MySQL详细环境
2021-05-03 21:58:00
1946
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅