TI论坛
直播中

卜臻敏

8年用户 197经验值
私信 关注
[问答]

CAN总线通讯中,怎么定时发送和接收多个邮箱

各位专家,您好。我打算在DSP2812开发板和上位机之间实现CAN通信:设置2个发送邮箱,1个接收邮箱,定时接收和发送数据帧.2个发送邮箱发送周期分别是10ms和200ms;接收邮箱的接收周期是160ms.想在主程序中循环接收和发送,不清楚程序中应该如何实现,请各位专家指教.谢谢.

回帖(4)

朱虹博

2020-6-11 15:18:43
用cputimer作为systick,定时10mS中断,然后定时发送。
具体的可以参考2812的ecan_back2back例程和cpu_timer例程
focus.ti.com.cn/.../sprc097.html
举报

卜臻敏

2020-6-11 15:27:27
引用: Emily1225 发表于 2020-6-11 15:52
用cputimer作为systick,定时10mS中断,然后定时发送。
具体的可以参考2812的ecan_back2back例程和cpu_timer例程
focus.ti.com.cn/.../sprc097.html

谢谢Forrest的回复。使用cputimer是可以实现定时发送,但是只能使用timer0,而timer1和timer2是保留的。如果要实现两个以上邮箱的发送,且发送周期不同,就不够了。是否可以使用Ev中的定时器来实现其他邮箱的定时发送?
举报

朱虹博

2020-6-11 15:44:21
引用: 60user119 发表于 2020-6-11 16:01
谢谢Forrest的回复。使用cputimer是可以实现定时发送,但是只能使用timer0,而timer1和timer2是保留的。如果要实现两个以上邮箱的发送,且发送周期不同,就不够了。是否可以使用Ev中的定时器来实现其他邮箱的定时发送?

timer1和timer2如果不用OS系统那么你可以使用,不需要保留。
用timer0作为时钟每10ms中断一次,中断16次发送160mS的数据。
可以用EV定时器来定时。
举报

卜臻敏

2020-6-11 15:49:23
再次感谢Forrest的回复。解决定时接收和发送邮箱问题,关键在于为邮箱选定时钟,可以使用cputimer或Ev_timer来实现,用中断方式接收和发送邮箱数据。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分