打印
[STM32G4]

请问G4系列的CANFD,如果发送两条连续报文,不加延时,怎么处理?

[复制链接]
176|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
goodluck09876|  楼主 | 2024-2-26 16:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问G4系列的CANFD,如果发送两条连续报文,不加延时,怎么处理?
请问有这方面的资料吗

使用特权

评论回复
沙发
香水城| | 2024-2-27 13:56 | 只看该作者
直接发就是了。硬件有发送缓冲的,记得有3个。
例程在STM32g4 固件库里就有:

C:\Users\miler shao\STM32Cube\Repository\STM32Cube_FW_G4_V1.5.2\Projects\STM32G474E-EVAL\Examples\FDCAN

使用特权

评论回复
板凳
laocuo1142| | 2024-3-18 12:31 | 只看该作者
如果可能,为第二条消息分配一个稍低的优先级,以减少冲突的可能性。

使用特权

评论回复
地板
flycamelaaa| | 2024-3-18 14:26 | 只看该作者
在硬件或软件层面实现发送缓冲和队列管理。这样,即使两条消息几乎同时到达发送队列,它们也可以被有序地处理,而不是立即连续发送。

使用特权

评论回复
5
故意相遇| | 2024-3-18 14:30 | 只看该作者
一般就跟串口差不多吧,都是有缓冲的

使用特权

评论回复
6
白马过平川| | 2024-3-18 17:00 | 只看该作者
你弄个环形队列?是不是就可以

使用特权

评论回复
7
小夏天的大西瓜| | 2024-3-18 17:38 | 只看该作者
自身就有缓存区,一般能够正常收发

使用特权

评论回复
8
风凉| | 2024-3-18 19:00 | 只看该作者
可以丢包吧,比如说收到第一包处理完事儿再收第二包这种逻辑

使用特权

评论回复
9
西洲| | 2024-3-18 21:00 | 只看该作者
我建议是直接发,你是直接发完事儿之后,发现bug了?

使用特权

评论回复
10
捧一束彼岸花| | 2024-3-18 23:00 | 只看该作者
一般不需要加延迟的啊

使用特权

评论回复
11
在曼谷的春| | 2024-3-19 01:00 | 只看该作者
这个就是STM32关于CAN的资料就行,上面有写关于CAN的通讯方式的

使用特权

评论回复
12
失物招領| | 2024-3-19 07:00 | 只看该作者
需要注意的是,虽然可以在短时间内发送两条连续的CANFD报文,但在实际应用中,建议根据总线负载和通信需求适当地添加延时,以避免总线冲突和数据丢失。

使用特权

评论回复
13
将爱藏于深海| | 2024-3-19 09:00 | 只看该作者
需要配置两条要发送的CANFD报文,包括报文的ID、数据、数据长度等信息。确保报文的配置是正确的,并且符合CANFD协议的要求

使用特权

评论回复
14
一只眠羊| | 2024-3-19 11:00 | 只看该作者
在发送第一条报文后,需要等待CANFD控制器完成发送操作。这可以通过轮询CANFD控制器的状态寄存器或者使用中断来实现。确保第一条报文已经成功发送完成

使用特权

评论回复
15
月亮一键变蓝| | 2024-3-19 14:00 | 只看该作者
一旦第一条报文发送完成,立即配置并发送第二条报文。在发送第二条报文后,同样需要等待CANFD控制器完成发送操作

使用特权

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

本版积分规则

220

主题

5843

帖子

20

粉丝