硬汉嵌入式论坛

 找回密码
 立即注册
查看: 771|回复: 4
收起左侧

[CAN/FDCAN] STM32H723的can驱动初始化异常

[复制链接]

5

主题

18

回帖

33

积分

新手上路

积分
33
发表于 2022-12-2 15:03:24 | 显示全部楼层 |阅读模式
今天在调试STM32H723的can驱动的时候发现一个奇怪的问题:
一开始初始化了两个can,两个can的通讯都很正常;
然后把第二个can初始化关了,发现can1发出的数据就乱了,后面发现必须要在can1的初始化的最后面再加一个HAL_FDCAN_MspIinit;
而且在调试过程中如果把断点打在HAL_FDCAN_Iinit和HAL_FDCAN_MspIinit之间,那么这个can1发出的数据又乱了!!!
这么奇怪不知道是自己代码的问题还是HAL库的问题??还是芯片本身的问题??
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2022-12-2 15:56:11 | 显示全部楼层
1、H743\H750 没有这种问题。如果是芯片问题你可以看下H723的勘误手册是否有对此的说明
2、大概率是软件的问题。函数HAL_FDCAN_MspIinit,调用CAN的Iinit函数会自动调用这个回调,正常不需要用户单独调用的。
回复

使用道具 举报

4

主题

46

回帖

58

积分

初级会员

积分
58
发表于 2022-12-4 23:59:50 | 显示全部楼层
要不上传一下你的初始化代码看看吧,但是我有个猜测啊,如果真的是MCU乱了不是你的程序乱了,你的数据能发出来,那有可能是CAN模块的内存配置乱了
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2022-12-5 08:26:40 | 显示全部楼层
问题找到了,HAL库的HAL_IncTick是1ms一次,我给他放到了10us一次的定时器里,导致第一次的HAL_FDCAN_MspIinit是失败的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2022-12-6 09:27:31 | 显示全部楼层
可乐狂魔 发表于 2022-12-5 08:26
问题找到了,HAL库的HAL_IncTick是1ms一次,我给他放到了10us一次的定时器里,导致第一次的HAL_FDCAN_MspIi ...

谢谢告知问题原因。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 17:02 , Processed in 0.162509 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表