[STM32F1] STM32F103 CAN主站收到从站数据后如何立刻发送下一个CAN数据

[复制链接]
 楼主| jcky001 发表于 2025-2-27 12:18 | 显示全部楼层 |阅读模式
我目前CAN的发送是放main里面,因为main还有其它任务处理,所以周期调用CAN的发送,而我现在想节省这个周期的时间,在收到从的CAN数据后,主立马去发下一个CAN数据。我看了下CAN的接收中断功能,想用接收中断收到新报文来触发发送。但是没有发送动作就不会进去接收中断了。所以就没有更好办法,请问大家用什么方法可以实现呢?
515192147 发表于 2025-2-28 16:33 | 显示全部楼层
放在 1个  FIFO 中的
淡漠安然 发表于 2025-3-17 01:32 | 显示全部楼层
要在收到从设备的CAN数据后立即触发主设备的CAN发送,可以使用CAN接收中断来处理接收到的数据,并在中断服务例程(ISR)中触发发送。

暖了夏天蓝了海 发表于 2025-3-17 02:14 | 显示全部楼层
确保CAN接收中断的优先级设置合理,以避免高优先级任务阻塞中断处理。

远山寻你 发表于 2025-3-17 03:43 | 显示全部楼层
错误处理,在CAN初始化和操作过程中,添加适当的错误处理代码。

一秒落纱 发表于 2025-3-17 04:37 | 显示全部楼层
数据一致性,在多任务环境中,确保共享数据的一致性,避免竞态条件。

光辉梦境 发表于 2025-3-17 05:25 | 显示全部楼层
节省周期的话,可以使用DMA的吧

三生万物 发表于 2025-3-17 06:34 | 显示全部楼层
这种需求不就用中断+DMA不就可以吗

夜阑风雨 发表于 2025-3-17 07:44 | 显示全部楼层
我觉得串口有空闲中断,你的CAN应该也会有吧

别乱了阵脚 发表于 2025-3-17 08:39 | 显示全部楼层
一般来说放一个缓冲区中,用DMA发送应该就可以

冰春彩落下 发表于 2025-3-17 09:22 | 显示全部楼层
一般有空闲中断,不能用接收中断这么操作

江河千里 发表于 2025-3-17 10:54 | 显示全部楼层
你定时发送也可以吧,用定时器的方式定时发送呗

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

本版积分规则

1636

主题

5575

帖子

6

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