Я сейчас пишу свои собственные драйверы для микроконтроллера, который я хочу изучить (stm32f4). С моим кодом все шло хорошо, без ошибок компилятора, пока я не добавил заголовок драйвера в main. c
Ошибка:
код где ошибка:
typedef struct
{
__vo uint32_t MODER; //GPIO port mode register offset: 0x00
__vo uint32_t OTYPER; //GPIO port output type register offset : 0x04
__vo uint32_t OSPEEDR; //GPIO port output speed register offset: 0x08
__vo uint32_t PUPDR; //GPIO port pull-up/pull-down register offset: 0x0C
__vo uint32_t IDR; //GPIO port input data register offset: 0x10
__vo uint32_t ODR; //GPIO port output data register offset: 0x14
__vo uint32_t BSRR; //GPIO port bit set/reset register offset: 0x18
__vo uint32_t LCKR; //GPIO port configuration lock register offset: 0x1C
__vo uint32_t AFR[2]; //GPIO alternate function low/high register offset: AF[0] low register 0x20 AF[1] high register 0x24
}GPIO_RegDef_t;
//GPIO_RegDef_t *pGPIOA = (GPIO_RegDef_t*)0x40020000U;
/***************************************************************************************
**************Reset and Clock Control RCC Register Definition Structure*****************
***************************************************************************************/
typedef struct
{
__vo uint32_t CR; //clock control register offset : 0x00
__vo uint32_t PLLCFGR; //PLL configuration register offset: 0x04
__vo uint32_t CFGR; //clock configuration register offset: 0x08
__vo uint32_t CIR; //clock interrupt register offset: 0x0C
__vo uint32_t AHB1RSTR; // AHB1 peripheral reset register offset: 0x10
__vo uint32_t AHB2RSTR; //AHB2 peripheral reset register offset: 0x14
__vo uint32_t RESERVED0[2];
__vo uint32_t APB1RSTR; //APB1 peripheral reset register offset: 0x20
__vo uint32_t APB2RSTR; //APB2 peripheral reset register offset: 0x24
__vo uint32_t RESERVED1[2];
__vo uint32_t AHB1ENR; //AHB1 peripheral clock enable register offset: 0x30
__vo uint32_t AHB2ENR; //AHB2 peripheral clock enable register offset: 0x34
__vo uint32_t RESERVED2[2];
__vo uint32_t APB1ENR; //APB1 peripheral clock enable register offset: 0x40
__vo uint32_t APB2ENR; //APB2 peripheral clock enable register offset: 0x44
__vo uint32_t RESERVED3[2];
__vo uint32_t AHB1LPENR; //AHB1 peripheral clock enable in low power mode register offset: 0x50
__vo uint32_t AHB2LPENR; //AHB2 peripheral clock enable in low power mode register offset: 0x54
__vo uint32_t RESERVED4[2];
__vo uint32_t APB1LPENR; //APB1 peripheral clock enable in low power mode register offset: 0x60
__vo uint32_t APB2LPENR; //APB2 peripheral clock enable in low power mode register offset: 0x64
__vo uint32_t RESERVED5[2];
__vo uint32_t BDCR; //Backup domain control register offset: 0x70
__vo uint32_t CSR; //clock control & status register offset: 0x74
__vo uint32_t RESERVED6[2];
__vo uint32_t SSCGR; //spread spectrum clock generation register offset: 0x80
__vo uint32_t PLLI2SCFGR; //PLLI2S configuration register offset: 0x84
__vo uint32_t RESERVED7;
__vo uint32_t DCKCFGR; //Dedicated Clocks Configuration Register offset: 0x8C
}RCC_RegDef_t;
Если я правильно понимаю, ошибка говорит мне, что структуры либо объявляются с элементами, имеющими неправильные типы данных, либо структуры переопределяются позже. Что для меня странного, так как компилятор говорит, что предыдущее объявление находится в том же месте?
Любая помощь или советы по поиску ошибки были бы очень полезны, так как я не могу многое сделать, пока не решу это. Что я должен искать, чтобы помочь определить неправильный код? спасибо