prefacio
El chip STM32F103ZET6 se usó en keil antes, y ahora quiero usar el modelo F103C4. Pensé que sería suficiente cambiar directamente el modelo de chip de los dispositivos en la varita mágica, pero la compilación posterior encontró que se informó un error. La situación es la siguiente: Es decir, el principal error
es:
…\USER\stm32f10x.h(298): error: #67: se esperaba un “}”**
ADC1_2_IRQn = 18, /*!< Interrupción global ADC1 y ADC2
1. El motivo del error: la definición de macro no coincide con el modelo
Por ejemplo, chip F103ZET6,
la definición de macro es: STM32F10X_HD, USE_STDPERIPH_DRIVER
Por lo tanto, al cambiar a chips de la serie F103C4, la definición de macro se cambia a:
2. Asuntos que requieren atención
El papel de la definición de macro STM32F10X_MD:
existe un código de preprocesamiento de este tipo en el archivo stm32f10x.h
#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL)
#error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
#endif
Estas definiciones de macro deben seleccionarse y definirse de acuerdo con la capacidad del chip. STM32F10X_LD es de pequeña capacidad, STM32F10X_MD es de capacidad media y STM32F10X_HD es de gran capacidad. La capacidad aquí se refiere al tamaño de FLASH. El método de evaluación es el siguiente:
16KB≤FLASH≤32KB Seleccione: STM32F10X_LD
64KB≤FLASH≤128KB Seleccionar: STM32F10X_MD
256KB≤FLASH≤512KB Seleccione: STM32F10X_HD
El STM32C8T6 de uso común es de 64 K, que es de capacidad media, y el STM32F103ZET6 es de 512 K, que es de gran capacidad.