打印
[STM32F1]

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

[复制链接]
514|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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接收中断的优先级设置合理,以避免高优先级任务阻塞中断处理。

使用特权

评论回复
5
远山寻你| | 2025-3-17 03:43 | 只看该作者
错误处理,在CAN初始化和操作过程中,添加适当的错误处理代码。

使用特权

评论回复
6
一秒落纱| | 2025-3-17 04:37 | 只看该作者
数据一致性,在多任务环境中,确保共享数据的一致性,避免竞态条件。

使用特权

评论回复
7
光辉梦境| | 2025-3-17 05:25 | 只看该作者
节省周期的话,可以使用DMA的吧

使用特权

评论回复
8
三生万物| | 2025-3-17 06:34 | 只看该作者
这种需求不就用中断+DMA不就可以吗

使用特权

评论回复
9
夜阑风雨| | 2025-3-17 07:44 | 只看该作者
我觉得串口有空闲中断,你的CAN应该也会有吧

使用特权

评论回复
10
别乱了阵脚| | 2025-3-17 08:39 | 只看该作者
一般来说放一个缓冲区中,用DMA发送应该就可以

使用特权

评论回复
11
冰春彩落下| | 2025-3-17 09:22 | 只看该作者
一般有空闲中断,不能用接收中断这么操作

使用特权

评论回复
12
江河千里| | 2025-3-17 10:54 | 只看该作者
你定时发送也可以吧,用定时器的方式定时发送呗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1575

主题

5312

帖子

6

粉丝