STM32F429 CAN通信不成功

最近因为CAN的问题弄了我好几天时间,总结一下:

1:STM32F407开发板回环模式与CAN1给CAN2发数据都是OK的,STM32F429不行。

对比初始化函数以及检查硬件,120欧电阻还是要的,什么光耦电路能去掉还是去掉,H/L直接从TJA1050芯片出来即可。

2:STM32F407与STM32F429回环模式,can1与can2通信都成功,但是STM32F407与STM32F429通信不成功。

这是为毛啊??不急,再做个试验,STM32F429两块板子能通信成功,不存在硬件问题了,定位应该是波特率不匹配的问题。

按照STM32规格书波特率计算方式应该是:

can波特率=(APB1时钟/(分频系数*(SYNC_SEG+BS1+BS2)));

再看看自己的配置,怎么看怎么对啊,虽然429系统时钟是180M,407系统时钟是168M,但407与429都是设置的是250kbps。

好吧,代码是看不出结果的。

1:拿个示波器来量吧,唯一借的一个示波器是坏的,can是通过H/L之前的电平差来计算1与0的,所以可以测试出来,我是没测成功,放弃。

2:弄个can转USB吧,407设置250Kbps通信成功,429设置250Kbps不成功。

更加确认波特率不对,但是为什么不对呢,那就去研究下系统时钟的产生,大概说下:

系统时钟可以由好几种方式产生,我的板是有外部晶振产生的,一般STM32官方固件库默认外部晶振是8M,但是我这块板子外部晶振是25M,那就怀疑是不是这方面配置,修改下配置25M(具体配置自行百度),再次试验,成功。

虽然最终成功,按理说外部晶振通过倍频方式产生180M的系统时钟,系统时钟再通过分频方式产生总线时钟,CAN波特率应该不受此影响,还是不理解最终原因???



STM32F429CAN2 是一款由 STMicroelectronics(意法半导体)生产的一款高性能微控制器,属于 STM32 系列。该芯片基于 ARM Cortex-M4 内核,支持浮点运算单元 (FPU),提供丰富的外设集以及高速的处理能力。 **关键特性包括:** 1. **处理器内核**:它搭载了 ARM Cortex-M4 内核,工作频率最高可达 180 MHz。Cortex-M4 支持 IEEE 754 标准的单精度浮点运算单元(FPU)。 2. **存储器**:STM32F429CAN2 提供了大容量的 SRAM 存储空间,以及外部存储器接口,如 SPI、I2C 和 JTAG 接口用于连接各种内存设备。 3. **通信外设**:这款微控制器内置了 CAN (Controller Area Network) 总线接口,允许其与其他设备进行可靠的数据传输,在工业自动化、汽车电子等领域应用广泛。 4. **其他外设**:STM32F429CAN2 还包含多种数字 I/O 引脚、定时器、ADC(模拟到数字转换)、DMA(直接内存访问)通道等丰富资源,适合于需要复杂控制算法的应用场景。 5. **安全性和调试**:支持加密功能和安全密钥管理,同时提供了 USB OTG (On-the-Go) 和调试接口,便于开发和调试过程。 **应用场景**: - 工业自动化控制 - 智能家居设备控制 - 车辆网络通讯系统 - 高性能消费电子产品 对于想要深入了解 STM32F429CAN2 或者寻求如何将它应用于特定项目的人来说,重要的是熟悉其架构文档、参考手册,并且可能会需要相应的开发工具和软件库来有效地利用其资源。 --- ## 相关问题: 1. STM32F429CAN2 的最大功耗是多少? 2. 如何选择合适的开发工具和IDE来开发基于STM32F429CAN2的项目? 3. STM32F429CAN2 是否支持实时操作系统(RTOS)?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值