主題:[求助]Socket can可以配置自動重發么 共有72391人關注過本帖 |
---|
![]() hzc |
1樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 你好,can總線是有ACK信號相應的,所以can總線協議本身就有自動重發的功能,不需要單獨配置。 [此貼子已經被作者于2020-11-18 9:44:47編輯過]
|
單帖管理 | 引用 | 回復 ![]() |
![]() hzc |
2樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 你好,can的控制器本身就會重發,不需要設置。 如果是軟件上調用發送提示失敗,可能是因為程序中沒有判斷調用發送的返回值,然后一直在填入數據。 硬件在發送失敗后,會一直反復重發,在數據發送成功之前會一直占用緩存,如果這時軟件一直填入數據,就會占用更多的緩存,當緩存占滿之后,軟件中再次調用發送就會報錯。 [此貼子已經被作者于2020-11-19 13:54:24編輯過]
|
單帖管理 | 引用 | 回復 ![]() |
![]() hzc |
3樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 你好,write返回值只要沒有出錯,就說明數據已經填寫到硬件中了,硬件會自動進行發送,直到發送成功,成功的標志是收到對應設備回發的ACK信號,具體的說明可以在網上查詢一下CAN總線的協議說明。wirtei返回值出錯就和上一條帖子說的一樣,是因為在數據沒有發送成功的時候,程序還在一直填寫數據,導致硬件緩存數據溢出。 |
單帖管理 | 引用 | 回復 ![]() |
![]() hzc |
4樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 不客氣 |
單帖管理 | 引用 | 回復 ![]() |