Hallo Zusammen,
ich nutze Arduino Blue Pill & CAN mit SN65HVD230 zur Kommunikation zwischen den einzelnen Blue Pills. Das funktioniert soweit ganz gut nur das niedrig priorisierte Nachrichten sehr lange unterwegs sind. Das Grund dürfte sein, das ich alle Nachrichten im Intervall alle 200 ms sende. Und wenn dann noch einen Nachricht nicht ankommt wird es auf dem Bus voll. final sollen ca 60 Teilnehmer (Blue Pill) auf den CAN Bus zugreifen. Also habe ich umgestellt auf "event gesteuertes versenden" sprich, es wird immer dann gesendet wenn ich ein Eingang am Blue pill ändert. Auch das funktioniert soweit. Mit ist dabei aufgefallen, das wenn der Sender zB Nachricht 0x100011 sendet, sich der Empfänger der Nachricht nicht im CAN befindet, die Nachricht trotzdem als empfangen quittiert wird und somit auch nicht mehr gesendet wird. Mein letzter Versuch Aufbau: 1 Blue Pill als Zentrale versendet Nachricht 0x100011 es ist nur ein Empfänger im CAN Netz. Der Soll aber Nachricht 0x100020 empfangen. nachdem ich die Zentrale eingeschaltet habe wird Nachricht 0x100011 gesendet und zwar immer wieder da das ACK Bit nicht vom Empfänger quittiert wird. Sobald ich den Empfänger für die Nachricht 0x100020 einschalte und dieser im loop ist, wird die Nachricht 0x100011 als empfangen gekennzeichnet.
Ich bin bis dato davon aus gegangen das nur der Empfänger die Nachricht quittieren kann, der auch für diese Nachricht vorgesehen ist. Liege ich da falsch?
Selbstverständlich habe ich mehrere Blue Pills und auch Transiverbausteine verwendet
Im Anhang findet Ihr: Meine CAN programierung in der Zentrale : CANsenden Die Bivliotheken von github : stm32f103.ccp & stm32f103.h Mein Code vom Empfänger: Modul 1 Mein programmcode der Zentrale: Zentrale
Kann mal jemand schauen, wo da der Fehler liegt?
PS: ich habe die intervallschleife in der Funktion für CAN senden noch nicht entfernt, falls ich die doch noch brauche. PPS noch eine bitte, ich weiß das der Blue Pill kein Arduiono ist, ich weiß das dieser häufig geklont und gefaked wird. Also bitte keine Diskussion über Sinn der Verwendung des STM32 Blue Pill. Danke.
Gruß
Kay