STM32F103 microcontroller CAN-Nachrichten
Frage ich mich, wenn jemand vertraut ist mit jedem STM32f10x Mikro-Controller?
Wenn das so ist, ich habe einige Probleme mit der Konfiguration eines CAN-Treiber. Kann ich den demo-code, der zu einem loop_Back-Modus, aber ich kann nicht Normal_Mode zu arbeiten.
Ich Lesen, alle Datenblätter und alles ist richtig konfiguriert, außer die INAK in der CAN_MSR registrieren nie auf 0 zurückgesetzt. Kann ich mehr Details, wenn nötig, aber zuerst muss ich wissen, ob es jemanden gibt, der gearbeitet hat, mit einem STM32F103 mikrocontroller und CAN-Nachrichten.
Versuchen Sie durch Fragen, die mit der
ja nichts zu KÖNNEN.
Nein, aber viele Menschen vertraut mit STM32xxxx micro-Controller, die angezeigt wird, um die primäre Sache, die Sie suchen an dieser Stelle...
Ich wäre daran interessiert, dass Ihr code, aber ich empfehle dir es vereinfachen, so viel wie möglich vor der Buchung. Versuchen, um es zu vereinfachen, um das einfachste Programm, die das problem veranschaulicht. Ich bevorzuge zu sehen, raw-register zugreift anstelle der Aufrufe der STM32 standard peripheral library.
stm32
tag.ja nichts zu KÖNNEN.
Nein, aber viele Menschen vertraut mit STM32xxxx micro-Controller, die angezeigt wird, um die primäre Sache, die Sie suchen an dieser Stelle...
Ich wäre daran interessiert, dass Ihr code, aber ich empfehle dir es vereinfachen, so viel wie möglich vor der Buchung. Versuchen, um es zu vereinfachen, um das einfachste Programm, die das problem veranschaulicht. Ich bevorzuge zu sehen, raw-register zugreift anstelle der Aufrufe der STM32 standard peripheral library.
InformationsquelleAutor microb | 2011-06-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie die Tx-pin als Out_PP, aber sollte es so konfiguriert, dass als Alternative Funktion statt. Unten ist meine init-code KANN auf einem STM32F107. Ich kopiert /eingefügt und entfernt es aus einem bestehenden Projekt so einige Sachen nicht nötig ist (wie nicht alle GPIOs aktiviert werden müssen). Beachten Sie auch benutzte ich die remap-Funktion zum setzen der CAN Rx und Tx pins an port D.
Diese Konfiguration setzt die bus-Geschwindigkeit auf 500 kbit/s bei Verwendung eines 72-MHz-Takt.
Senden einer Nachricht kann dann wie folgt vorgenommen:
Empfang erfolgt über IRQ:
InformationsquelleAutor Ron
Ich habe mit STM32F103-Microcontroller, aber meine einzige (kleine) Erfahrung mit KANN war, dass die Aktivierung, die es verursachte, USB nicht zu funktionieren. Die beiden Module teilen sich einen Speicherbereich. So stellen Sie sicher, dass Sie deaktivieren Sie die USB-Modul und die Uhr (clear bit 23 von RCC_APB1ENR).
Ich werde fügen Sie den code ein wenig.
'/* Configure pin: RX /' GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //Floating / pull-up-GPIO_Mode_IPU GPIO_Init(GPIOB, &GPIO_InitStructure); / Konfigurieren KÖNNEN pin: TX */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_SetBits(GPIOB, GPIO_Pin_9);' // Das problem ist hier. sobald dies konfiguriert ist, dem transceiver TX niedrig ist, und Rx ist Low H high und CAN L ist gering, was bedeutet, es ist immer in einem Staat Dominieren, basierend auf dem Datenblatt.
Ich sehe nicht, nichts falsch mit, dass code, aber offensichtlich ist es nicht Ihr komplettes Programm. Auch ich weiß nicht genug zu KÖNNEN, um zu wissen, ob es richtig ist, machen den RX-pin hochgezogen werden, und legen Sie die TX-pin push-pull-Ausgang.
InformationsquelleAutor David Grayson