[STM32F4] 最新CUBEMX的HAL的CAN总线配置接受发送(STM32F412)

[复制链接]
houcs 发表于 2023-7-3 23:33 | 显示全部楼层
我自己用最新的cubemx生成就不行
liuzaiy 发表于 2023-7-3 23:34 | 显示全部楼层
我发现执行HAL_CAN_AddTxMessage 时卡死了。
yinxiangh 发表于 2023-7-3 23:35 | 显示全部楼层
能不用HAL 就还是使用常规的BSP库比较好!
pangb 发表于 2023-7-3 23:38 | 显示全部楼层
huanghuac 发表于 2023-7-3 23:23
HAL_StatusTypeDef HAL_CAN_AddTxMessage(CAN_HandleTypeDef *hcan, CAN_TxHeaderTypeDef *pHeader, uint8_ ...

对啊  我就发现走到这里死掉了。
chenjunt 发表于 2023-7-3 23:39 | 显示全部楼层
自己定义一个字节数组再把数组地址代替CAN_TX_MAILBOX0传进去就一切正常了
ousj 发表于 2023-7-3 23:41 | 显示全部楼层
一开始我也是参考这段代码后来发现发送总是进错误中断。
morrisk 发表于 2023-7-3 23:42 | 显示全部楼层
一点点排查,发现CAN_TX_MAILBOX0只是一个宏,且值为0x00000001 我没看懂楼主为什么把这个强制转换成地址再传进去的意义。
zyf部长 发表于 2023-7-3 23:43 | 显示全部楼层
但是自己定义一个字节数组再把数组地址代替CAN_TX_MAILBOX0传进去就一切正常了
xxmmi 发表于 2023-7-3 23:44 | 显示全部楼层
参考ST官方的例程啦!

虽然我没完全调通,按照ST来就没问题了。
kangzj 发表于 2023-7-3 23:45 | 显示全部楼层
HAL_CAN_AddTxMessage(&hcan,&TxMessage1,TR_BUF,(uint32_t*)CAN_TX_MAILBOX0)
对,就是最后参数(uint32_t*)CAN_TX_MAILBOX0的问题;要设一个变量传进来;
我发送可以了,但又接收又接收不到,没时间研究了,于是我就用来了低版本的HAL库(1.6);cubemx我也用回了低版本的了,真是悲催啊!
lium 发表于 2023-7-3 23:47 | 显示全部楼层
CAN_TX_MAILBOX0  这个换成CAN_TX_MAILBOX1  就不会进hardfaul  不解
guoyt 发表于 2023-7-3 23:48 | 显示全部楼层
是的,我把0改成1 用的回环模式就正常了
hanwe 发表于 2023-7-3 23:49 | 显示全部楼层

1、使用新版HAL库中的HAL_CAN_AddTxMessage发送就死机看库文件注释中有说明

/**
  * @brief  Add a message to the first free Tx mailbox and activate the
  *         corresponding transmission request.
  * @param  hcan pointer to a CAN_HandleTypeDef structure that contains
  *         the configuration information for the specified CAN.
  * @param  pHeader pointer to a CAN_TxHeaderTypeDef structure.
  * @param  aData array containing the payload of the Tx frame.
  * @param  pTxMailbox pointer to a variable where the function will return
  *         the TxMailbox used to store the Tx message.
  *         This parameter can be a value of @ARG CAN_Tx_Mailboxes.
  * @retval HAL status
  */
这个是因为楼主发送函数的参数写错了,最后一个参数,要自己定义一个变量,然后取地址使用
楼主的是:
HAL_CAN_AddTxMessage(&hcan1,&TxMessage1,TR_BUF,(uint32_t*)CAN_TX_MAILBOX0);
修改为:
int my_pTxMailbox;
HAL_CAN_AddTxMessage(&hcan1,&TxMessage1,TR_BUF,(uint32_t*)&my_pTxMailbox)

这里面的最后一个参数就相当于一个返回值之类的
yufe 发表于 2023-7-3 23:50 | 显示全部楼层
无法接收不仅接收中断
2.1检查一下是否使用了楼主的打开中断
2.2检查一下是否开启的过滤器
llia 发表于 2023-7-3 23:52 | 显示全部楼层
STM32HAL库写CAN通信程序最近遇到了难题
wangpe 发表于 2023-7-3 23:53 | 显示全部楼层
在STM32CubeMX中,STM32F207如何对CAN进行配置
langgq 发表于 2023-7-3 23:54 | 显示全部楼层
STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列。
wangzsa 发表于 2023-7-3 23:55 | 显示全部楼层
stm32cubemx生成项目文件如何和keil一起
zhuww 发表于 2023-7-3 23:57 | 显示全部楼层
STM32系列兼容性高。尤其跟STM32CUBEMX工具配合得好
zhanglli 发表于 2023-7-3 23:57 | 显示全部楼层
用STM32CubeMX怎么配置CAN接收中断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部