基于STM32F429的HAL版双CAN通信案例(2023-10-24)
例程下载:https://www.armbbs.cn/static/image/filetype/zip.gifV6-030_板载CAN1和CAN2双机通信.7z (1.85MB)
接线说明:
测试说明:
CAN1和CAN2波特率1Mbps
1、K1按键按下,CAN2发送消息给CAN1
串口打印:
CAN助手打印:
2、K2按键按下,CAN1发送消息给CAN2
串口打印:
CAN助手打印:
更新完成。 牛鼻牛鼻呀 hpdell 发表于 2023-10-26 10:09
牛鼻牛鼻呀
本来早就该发布了,耽搁了一段时间,这次算是更新了。 eric2013 发表于 2023-10-26 12:54
本来早就该发布了,耽搁了一段时间,这次算是更新了。
领导辛苦了,
我另外一个帖子里面的 按钮 返回无效的问题有空帮我 看看是怎么回事呀 ? hpdell 发表于 2023-10-26 15:45
领导辛苦了,
我另外一个帖子里面的 按钮 返回无效的问题有空帮我 看看是怎么回事呀 ?
好的,回复了{:33:} eric2013 发表于 2023-10-26 16:49
好的,回复了
感谢感谢啊,:handshake 我试着怎么一直发送失败
卡在我截图那里
当设备不停地发送can数据时,就是每一帧数据之间不加延时,连续着发送。接收CAN会存在丢帧,有没有什么好办法处理呀??? years 发表于 2023-11-2 14:44
我试着怎么一直发送失败
卡在我截图那里
卡在这里一般是参数配置有问题,单步调试进去,看下是那里退出的。 xujun 发表于 2023-11-22 09:08
当设备不停地发送can数据时,就是每一帧数据之间不加延时,连续着发送。接收CAN会存在丢帧,有没有什么好办 ...
进入邮箱发送完成回调,说明有新的空间可以使用了,可以继续添加数据发送
/*
*********************************************************************************************************
* 函 数 名: HAL_CAN_TxMailbox0CompleteCallback
* 功能说明: TxMailbox0回调函数
* 形 参: hcan
* 返 回 值: 无
*********************************************************************************************************
*/
void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan)
{
if(hcan == &Can1Handle)
{
bsp_PutMsg(MSG_CAN1_TxMailBox0, 0);
}
if(hcan == &Can2Handle)
{
bsp_PutMsg(MSG_CAN2_TxMailBox0, 0);
}
}
/*
*********************************************************************************************************
* 函 数 名: HAL_CAN_TxMailbox1CompleteCallback
* 功能说明: TxMailbox1回调函数
* 形 参: hcan
* 返 回 值: 无
*********************************************************************************************************
*/
void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan)
{
if(hcan == &Can1Handle)
{
bsp_PutMsg(MSG_CAN1_TxMailBox1, 0);
}
if(hcan == &Can2Handle)
{
bsp_PutMsg(MSG_CAN2_TxMailBox1, 0);
}
}
/*
*********************************************************************************************************
* 函 数 名: HAL_CAN_TxMailbox2CompleteCallback
* 功能说明: TxMailbox2回调函数
* 形 参: hcan
* 返 回 值: 无
*********************************************************************************************************
*/
void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan)
{
if(hcan == &Can1Handle)
{
bsp_PutMsg(MSG_CAN1_TxMailBox2, 0);
}
if(hcan == &Can2Handle)
{
bsp_PutMsg(MSG_CAN2_TxMailBox2, 0);
}
}
页:
[1]