Ich versuche, eine Online-Ressource zu finden, um herauszufinden, wie die GPIO-Register auf einem STM32F4 Cortex M4-Board konfiguriert werden. Ich habe nur Beispiele für den Cortex M4
typedef struct
{
__IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */
__IO uint32_t OTYPER; /*!< GPIO port output type register, Address offset: 0x04 */
__IO uint32_t OSPEEDR; /*!< GPIO port output speed register, Address offset: 0x08 */
__IO uint32_t PUPDR; /*!< GPIO port pull-up/pull-down register, Address offset: 0x0C */
__IO uint32_t IDR; /*!< GPIO port input data register, Address offset: 0x10 */
__IO uint32_t ODR; /*!< GPIO port output data register, Address offset: 0x14 */
__IO uint16_t BSRRL; /*!< GPIO port bit set/reset low register, Address offset: 0x18 */
__IO uint16_t BSRRH; /*!< GPIO port bit set/reset high register, Address offset: 0x1A */
__IO uint32_t LCKR; /*!< GPIO port configuration lock register, Address offset: 0x1C */
__IO uint32_t AFR[2]; /*!< GPIO alternate function registers, Address offset: 0x24-0x28 */
} GPIO_TypeDef;
Hier sind die Register. Aber es gibt nichts online, das mir zeigt, wie man einen Pin tatsächlich konfiguriert, um Ausgabe / Eingabe usw. zu sagen. Kann mir jemand eine Ressource zeigen?
Wenn Sie die ST- Standardperipheriebibliothek verwenden (herunterladbar von der STM32F4-Seite, es gibt auch die USB-Bibliothek und mehr ), dann lesen Sie die Dokumentation (es ist eine .chm-Datei auf der obersten Ebene der ZIP-Datei) und Überprüfen Sie den Beispielcode. Alle Funktionen zum Einrichten von IOs, Peripheriegeräten usw. sind darin enthalten.
Hier sind ein paar Ausschnitte, die die Initialisierung und Verwendung eines IO-Pins aus meinem Code zeigen.
Pins einrichten:
#include "stm32f4xx.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* Enable the GPIO_LED Clock */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = LED1 | LED2 | LED3 | LED4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
LED umschalten:
GPIO_SetBits(GPIOD, LED1);
GPIO_ResetBits(GPIOD, LED2);
Matt Jung
Raj
Oldtimer
Alexej Schmalko