Gast
#3217166
Hallo, ich programmiere im Moment einen STM32F207 Mikrocontroller. Bisher habe ich CAN lediglich dazu verwendet, Nachrichten an den Mikrocontroller zu senden. Als Entwicklungsumgebung habe ich im Moment noch Atollic TrueSTUDIO Lite installiert. Ich verwende CAN1 mit PD0: Rx PD1: Tx. Das Programm läuft ohne Probleme und lässt sich auch ohne Probleme debuggen, bis CAN_Transmit(CAN1, &canTx); aufgerufen wird. Egal ob der Aufruf innerhalb eines Interrupts oder außerhalb stattfindet funktioniert es nicht. Bereits nach wenigen Sendevorgängen lößt der Mikrocontroller keinen einzigen Interrupt mehr aus und verliert die Verbindung zum Debugger. Selbst die zuvor aktivierten LEDs schalten sich dann aus. Wird das Debuggen beendet und der Mikrocontroller neugestartet, dann funktioniert das Programm ohne Probleme. Der Debugger verwendet PA14, PA13, PA15, PB3 und PB4 - also PINs, die nicht von CAN verwendet werden. Nachfolgend noch der verwendete Code zum initialisieren von CAN.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
Viele Grüße, Florian