打印
[开发工具]

用CAN做节点通信,多个中断怎么统一处理?

[复制链接]
195|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
万图|  楼主 | 2025-4-10 07:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数据同步靠轮询太卡,中断又怕冲突,有没有折中方案?

使用特权

评论回复
沙发
Clyde011| | 2025-4-10 07:28 | 只看该作者
有条件可以加硬件网关,省心。

使用特权

评论回复
板凳
公羊子丹| | 2025-4-10 07:29 | 只看该作者
我用环形缓冲队列解决了丢包问题。

使用特权

评论回复
地板
周半梅| | 2025-4-10 07:30 | 只看该作者
中断别全放一个函数里,拆分更好管。

使用特权

评论回复
5
帛灿灿| | 2025-4-10 07:31 | 只看该作者
建议用双FIFO处理接收,省事。

使用特权

评论回复
6
童雨竹| | 2025-4-10 07:32 | 只看该作者
CAN中断优先级建议高一点。

使用特权

评论回复
7
万图|  楼主 | 2025-4-10 07:32 | 只看该作者
定时轮询+中断结合可能更稳。

使用特权

评论回复
8
Wordsworth| | 2025-4-10 07:33 | 只看该作者
加个状态机分流中断也能搞定。

使用特权

评论回复
9
Bblythe| | 2025-4-10 07:35 | 只看该作者
ST库里的回调函数处理得不太细。

使用特权

评论回复
10
Pulitzer| | 2025-4-10 07:36 | 只看该作者
如果是CAN FD,中断量会更多。

使用特权

评论回复
11
Uriah| | 2025-4-10 07:37 | 只看该作者
接收滤波器配好也能少很多干扰。

使用特权

评论回复
12
eydj2008| | 2025-4-10 08:49 | 只看该作者
应用层协议还是有很大关系,我的处理方式 就是用中断压入队列,如果没有收到回应,那个终端就会发多少次后才不发。 有回应了就不再发。
主要还是担心任务没有取到要的数据信号。

使用特权

评论回复
13
515192147| | 2025-4-10 17:21 | 只看该作者
ID小的先发送,别的FIFO堆里等待 下次 总线 没有数据再发

使用特权

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

本版积分规则

54

主题

4490

帖子

1

粉丝