C2000 CAN RX

4 visualizzazioni (ultimi 30 giorni)
Yusuf Selim KARATAS
Yusuf Selim KARATAS il 9 Mag 2020
Risposto: UDAYA PEDDIRAJU il 30 Ago 2024
Dear All,
I am using Simulink to build a model to receive CAN messages. You can see diagram below. I am getting "error: expression must have struct or union type" error. Please help me. How can I solve that?
Thanks.
"ykarata1_BMS_C2000_RX_deneme.c", line 67: error: expression must have struct or union type
"ykarata1_BMS_C2000_RX_deneme.c", line 68: error: expression must have struct or union type
"ykarata1_BMS_C2000_RX_deneme.c", line 70: error: expression must have struct or union type
"ykarata1_BMS_C2000_RX_deneme.c", line 71: error: expression must have struct or union type
"ykarata1_BMS_C2000_RX_deneme.c", line 73: error: expression must have struct or union type
/* S-Function (scanunpack): '<S1>/CAN Unpack' */
65 {
66 /* S-Function (scanunpack): '<S1>/CAN Unpack' */
67 if ((1 == ykarata1_BMS_C2000_RX_deneme_B.eCANReceive_o2[0].Length) &&
68 (ykarata1_BMS_C2000_RX_deneme_B.eCANReceive_o2[0].ID != INVALID_CAN_ID)
69 ) {
70 if ((4 == ykarata1_BMS_C2000_RX_deneme_B.eCANReceive_o2[0].ID) && (0U ==
71 ykarata1_BMS_C2000_RX_deneme_B.eCANReceive_o2[0].Extended) ) {
72 (void) memcpy(&ykarata1_BMS_C2000_RX_deneme_B.CANUnpack,
73 ykarata1_BMS_C2000_RX_deneme_B.eCANReceive_o2[0].Data,
74 1 * sizeof(uint8_T));
75 }
76 }
77 }
  1 Commento
Erich Russenberger
Erich Russenberger il 4 Lug 2024
@Yusuf Selim KARATAS, did you solve this issue? I have the same now.. thanks.

Accedi per commentare.

Risposte (1)

UDAYA PEDDIRAJU
UDAYA PEDDIRAJU il 30 Ago 2024
Hi Yusuf,
The error "expression must have struct or union type" in your Simulink model indicates a mismatch in data types.
To resolving it:
  1. Ensure that ykarata1_BMS_C2000_RX_deneme_B.eCANReceive_o2[0] and ykarata1_BMS_C2000_RX_deneme_B.CANUnpack have compatible data structures.
  2. Double-check that you're using correct indices to access elements within the eCANReceive_o2 array.
  3. If necessary, cast data to the appropriate type using (struct *) or (union *).

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by