esp32-s3 twai通信可以向自己发送数据吗?

jr-test
Posts: 100
Joined: Mon Aug 23, 2021 3:04 am

esp32-s3 twai通信可以向自己发送数据吗?

Postby jr-test » Sat May 07, 2022 1:38 am

现在遇到的情况就是向和自己id相同的设备发送数据,但是本身有时能接收到,有时不能接收。想知道这是为什么?有没有大佬能解惑一下 :shock:

ESP_Dazz
Posts: 308
Joined: Fri Jun 02, 2017 6:50 am

Re: esp32-s3 twai通信可以向自己发送数据吗?

Postby ESP_Dazz » Thu May 19, 2022 3:38 am

jr-test wrote: 现在遇到的情况就是向和自己id相同的设备发送数据,但是本身有时能接收到,有时不能接收。想知道这是为什么?有没有大佬能解惑一下 :shock:
不是很懂问题。如果有节点 A, B, C 然后 A 发起传送,你意思是 B 和 C 接收不了,还是 A 无法接收自己刚发的包?

jr-test
Posts: 100
Joined: Mon Aug 23, 2021 3:04 am

Re: esp32-s3 twai通信可以向自己发送数据吗?

Postby jr-test » Sun Jun 12, 2022 7:31 am

ESP_Dazz wrote:
Thu May 19, 2022 3:38 am
jr-test wrote: 现在遇到的情况就是向和自己id相同的设备发送数据,但是本身有时能接收到,有时不能接收。想知道这是为什么?有没有大佬能解惑一下 :shock:
不是很懂问题。如果有节点 A, B, C 然后 A 发起传送,你意思是 B 和 C 接收不了,还是 A 无法接收自己刚发的包?
不好意思,很久没来论坛了。是 A 有时可以接收自己刚发的包,有时接收不到自己刚发的包,但我不想它收到。
就是有一个节点A,它往外发数据,询问其他设备,有没有设备和它的id是一样的,所以它往外发数据用的标识符和自己的id一样。说白了就是自己给自己发数据,有时收得到,有时收不到。
问题得到解决了,我把self设置为0。
typedef struct {
union {
struct {
//The order of these bits must match deprecated message flags for compatibility reasons
uint32_t extd: 1; /**< Extended Frame Format (29bit ID) */
uint32_t rtr: 1; /**< Message is a Remote Frame */
uint32_t ss: 1; /**< Transmit as a Single Shot Transmission. Unused for received. */
uint32_t self: 1; /**< Transmit as a Self Reception Request. Unused for received. */
uint32_t dlc_non_comp: 1; /**< Message's Data length code is larger than 8. This will break compliance with ISO 11898-1 */
uint32_t reserved: 27; /**< Reserved bits */
};
//Todo: Deprecate flags
uint32_t flags; /**< Deprecated: Alternate way to set bits using message flags */
};
uint32_t identifier; /**< 11 or 29 bit identifier */
uint8_t data_length_code; /**< Data length code */
uint8_t data[TWAI_FRAME_MAX_DLC]; /**< Data bytes (not relevant in RTR frame) */
} twai_message_t;

Who is online

Users browsing this forum: Google [Bot] and 34 guests