stm32f042调试Can心得

STM32F042替换STM32F103 因为从事汽车CAN总线及多媒体解码盒,常常需要解一些简单的CAN数据,需要的硬件IO不多,仅仅是CAN+UART,所以最近为了节省成本,也是花了不少心思。直到最近发现了STM32F042,据介绍,这是带CAN的最小封装芯片。STM32F042----Cortex-M0内核 。14年初推出的芯片,号称带CAN总线的最便宜的MCU....仔细查了下手册,果然很适合我的项目,而且价格也便宜,据说RMB ... 阅读详情
AI摘要

本文记录了STM32F042微控制器上CAN总线端口映射的调试过程,包括使用PA11和PA12替代默认的PA9和PA10作为CAN引脚的尝试,遇到的问题及解决方案。详细介绍了正确的端口映射代码,并分享了完整的CAN初始化代码。

这两天玩了一下stm32f042的can,但是折腾了2个晚上,还是没有进展。我知道stm32f042F6P6 ssop20封装的pin17,pin18默认是PA9,PA10的功能,如果想使用PA11和PA12,需要进行端口映射。这样的话,我直接就用了下面的代码,进行端口映射,

 SYSCFG_MemoryRemapConfig(SYSCFG_CFGR1_PA11_PA12_RMP);

结果Can总线一直没有波形出来。使用回环模式调试,总线上一直没有波形。

由于CAN的PA11和PA12和串口1的PA9和PA10是复用的,没有第一时间使用串口进行调试。今天晚上下班将usart2飞线飞出来了。使能断言后,发现下面的断言错误。

DEBUG [D] main:94 hello armwind
DEBUG [D] assert_failed:94 …/Lib/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_syscfg.c,line:119

查看源码发现,断言表明,这个方法只能映射系统mem.

void SYSCFG_MemoryRemapConfig(uint32_t SYSCFG_MemoryRemap)
{
   
   
  uint32_t tmpctrl = 0;

  /* Check the parameter */
  assert_param(IS_SYSCFG_MEMORY_REMAP(SYSCFG_MemoryRemap));

  /* Get CFGR1 register value */
  tmpctrl = SYSCFG->CFGR1;

  /* Clear MEM_MODE bits */
  tmpctrl &= (uint32_t) (~SYSCFG_CFGR1_MEM_MODE);

  /* Set the new MEM_MODE bits value */
  tmpctrl |= (uint32_t) SYSCFG_MemoryRemap;

  /* Set CFGR1 register with the new memory remap configuration */
  SYSCFG->CFGR1 = tmpctrl;<
手把手教你用STM32F042实现CAN通信:从硬件连接到软件配置的保姆级教程 本文提供了一份基于STM32F042微控制器的CAN总线通信完整实战指南。内容涵盖从硬件电路连接、关键引脚重映射配置,到CAN外设初始化、波特率计算、数据收发代码实现的详细步骤。重点解析了软件配置中的常见陷阱与调试技巧,旨在帮助开发者,特别是资源有限的嵌入式项目,快速实现稳定可靠的CAN通信。 阅读详情

相关推荐

STM32——由CAN调试想到的调试过程总结

经历了前前后后大概一个半月的时间,总算把实验室自制电路板的CAN总线调通。过程真的应该记录一下。 调试过程: 首先在现有电路板的基础上,一上手肯定是先写程序。实验室原来的程序都是基于HAL库编写的,可是我只熟悉标准库。一开始我侥幸地认为,两个库混用应该没有什么问题。就直接建立了can的驱动文件,但是用了很长时间,CAN还是没有调通,甚至回环测试都没有通过。 接下来我就陷入了不

酸豆角作坊 1092

STM32F042 CAN调试实战:从端口映射到波形捕获的完整指南

本文详细解析了STM32F042芯片CAN总线调试中的经典问题——端口映射配置。针对常见的PA11/PA12引脚无法输出波形的问题,文章深入剖析了SYSCFG_CFGR1寄存器的正确操作方法,提供了可直接使用的初始化代码,并分享了从硬件连接到示波器抓波形的完整排查流程,帮助开发者高效解决CAN通信难题。

mars5的博客 607

STM32 CAN总线调试经验

前言 STM32 CAN代码网上很多,但大都是讲如何配置的,对于一些原理以及注意事项没有很清楚的说明。在实际调试过程中,两个设备间的通信只要设备CAN的配置一样基本就可以调通,但在增加设备的过程中,很容易出现多设备无法通信的问题,这里主要就这一问题进行说明。 硬件 STM32F042G4 + MAX3051 测试过程 测试板回来后,两个设备间的通信轻松搞定,但在增加设备的过程中,增加...

北京-大白的博客 5483

记一次使用STM32F042K6芯片内部HSI48M时钟导致CAN总线报错问题

深入去解决某个问题时,也会加深你对其它部分的了解和思考,比如这里让我又重新了解和CAN的采样点和CAN报错机制。

ApexYuan 860

STM32F042做CAN主机,跑通关节电机MIT模式控制Demo

CAN总线凭借实时性与抗干扰能力,成为工业设备和机器人关节控制中主流的通信方式。在嵌入式开发中,基于STM32微控制器搭建CAN主站,需要掌握协议解析、位定时配置和物理层布线等基础环节。本文以小型关节电机控制为应用场景,展示如何用一颗LQFP32封装的STM32F042实现MIT模式控制:通过8字节报文编码位置、速度、Kp/Kd和力矩指令,并配合模块化软件分层完成消息收发与状态管理。内容涵盖选型逻辑、硬件连接、报文编解码、波特率计算及调试方法,为小尺寸CAN主机设计提供可直接参考的工程实践。

weixin_34216614的博客 174

CANable开源方案:低成本STM32 USB转CAN总线调试实战

CAN总线是一种广泛应用于车载网络和工业控制的差分通信协议,具备抗干扰强、多主架构等特点。其调试通常依赖专业分析仪,成本较高。CANable开源项目基于STM32微控制器,实现了USB转CAN适配器,支持CandleLight、slcan等多种固件,兼容SavvyCAN、can-utils及Python-can等上位机工具。该方案硬件成本低、生态开放,适用于嵌入式开发、汽车电子及STM32毕业设计中的CAN通信调试与自动化测试,显著降低开发门槛。

weixin_29164185的博客 304

STM32 USB-CAN转换器开源项目详解

CAN总线作为工业控制和汽车电子领域的关键通信协议,其物理层采用差分信号传输实现高抗干扰性。基于STM32微控制器的USB-CAN转换器通过集成USB和CAN外设的硬件架构,实现了PC与CAN网络的便捷互联。这种方案在汽车诊断、工业自动化等场景具有重要应用价值,特别是开源实现显著降低了开发门槛。本项目采用STM32F042/72作为主控,配合TJA1051收发器构建硬件平台,支持PCAN兼容、candleLight等多种固件方案,提供从硬件设计到软件生态的完整解决方案。开源硬件理念与DFU固件更新机制的结合

weixin_35756690的博客 620

从STM32F042到F105:手把手教你移植CANable开源USB-CAN固件到豆芽开发板

本文详细介绍了如何将基于STM32F042的CANable开源USB-CAN固件移植到性能更强的STM32F105平台,特别针对豆芽开发板进行实战操作。内容包括硬件对比、时钟系统重构、内存优化、USB-CAN协议栈移植等关键步骤,帮助开发者快速实现高性能USB-CAN适配器的开发。

weixin_27252001的博客 220

详细指南:如何使用STM32F042微控制器构建CANbus嗅探器(Sniffer)

在本文中,我们将使用STM32F042微控制器来构建一个简单的CANbus嗅探器,并使用C语言进行编程。通过本文的指南,您应该能够构建一个基本的嗅探器,并对CAN网络进行监听和分析。为了使嗅探器有用,我们需要将接收到的CAN消息转发到另一个接口,例如USB或串口。为了测试我们的CANbus嗅探器,我们需要两个设备:一个发送CAN消息,另一个接收CAN消息。简单来说,CANbus嗅探器的工作原理是:监听CAN网络上的所有消息,并将这些消息转发到另一个接口(例如USB或串口),以便于分析和解码。

qq_38334677的博客 701

stm32f042复用can通信

stm32f042 28/20pin单片机利用can需要引脚复用。can通信

VCU128开发板上手记:搞定100G以太网IP核与QSFP光模块的那些坑

本文详细介绍了在VCU128开发板上实现100G以太网IP核与QSFP光模块调试的实战经验。从硬件准备、IP核配置到QSFP模块控制信号处理,文章揭示了数据手册中未提及的关键细节,并提供了优化参数和压力测试方案,帮助开发者快速解决UltraScale+平台下的高速以太网部署难题。

weixin_30740295的博客 518

聚类分析之——Kmeans算法(一)

原创地址:http://www.toutiao.com/i6399454239554273794/ 聚类分析是一种静态数据分析方法,常被用于数据挖掘、机器学习、模式识别等领域,聚类是一种无监督式的学习方法。它是在未知样本类别的情况下,通过计算样本彼此间的距离(欧式距离,马式距离,汉明距离,余弦距离等)来估计样本所属类别。从结构性来划分,聚类方法分为自上而下和自下而上两种方法。聚类的算法有很多

june2017的博客 3530

Oracle19c集群节点故障恢复:从主机重装到重新加入集群的完整指南

本文详细介绍了Oracle19c集群节点故障恢复的全过程,从主机重装到重新加入集群的完整指南。重点讲解了保持集群配置一致性、彻底清理故障节点残留信息和分阶段验证等关键恢复原则,帮助DBA高效解决节点故障问题,确保集群稳定运行。

weixin_42524276的博客 255

ROS2中间件选型指南:FastDDS与CycloneDDS零拷贝机制对比与实战

在机器人开发中,通信中间件是连接分布式节点的核心纽带,其性能直接影响系统的实时性与可靠性。DDS作为ROS2默认的通信标准,通过发布订阅模型和QoS策略,为高频大带宽场景提供了灵活的数据分发能力。并行计算与高性能传输的需求,推动了零拷贝技术的演进——从传统序列化到共享内存乃至指针传递,旨在减少数据复制开销、降低延迟。在激光雷达点云、相机图像等场景下,中间件的选型尤为关键。FastDDS凭借与ROS2的深度集成和丰富文档成为入门首选,而CycloneDDS在低延迟和资源占用上表现更优,借助iceoryx实现了

weixin_28726391的博客 250

中文文本纠错实战:pycorrector与kenlm的安装与高效使用指南

本文提供了一份详细的中文文本纠错实战指南,重点介绍了pycorrector与kenlm的安装与高效使用方法。内容涵盖从编译环境准备、依赖安装到核心参数调优、批量处理及领域自适应等全流程,旨在帮助开发者快速部署并优化纠错系统,提升中文文本处理的质量与效率。

weixin_29055699的博客 411

PyQt5开发编译器安装(PyCharm安装)

PyCharm 提供了最完整的 PyQt5 开发体验,特别是其集成的调试工具和 Qt Designer 支持,能显著提高开发效率。是最受欢迎和功能最完整的 IDE。它专门为 Python 开发优化,对 PyQt5 有很好的支持。右键运行该文件,如果出现窗口说明配置成功。对于 PyQt5 开发,

啊渊的专栏 416

Claude Code 常见安装失败问题与解决办法

摘要: Claude Code安装失败通常与环境、网络和权限问题有关,而非软件本身。主要误区包括:命令未识别(需检查PATH和终端重启)、网络连接失败(终端代理配置)、权限不足(系统安全限制)及账号认证问题。首次使用应避免复杂任务,建议从基础功能测试开始。快速自检可按终端重启→命令识别→网络→代理→权限→账号状态的顺序排查。理顺终端、网络和权限后,Claude Code运行将更稳定。 (150字)

sg_knight的专栏 6692

【置顶】ARMv8/ARMv9架构入门到精通-[目录]

周贺贺,baron,代码改变世界,coding_the_world,Arm精选,arm_2023,安全启动,加密启动 optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、V

baron-周贺贺-代码改变世界ctw 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: Can总线协议学习
下一篇: 生活不仅仅只有代码
armwind
博客等级 码龄12年 406粉丝 152原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值