Introducción y uso de la biblioteca estándar STM32

Biblioteca estándar STM32 inicial

Debido a que los núcleos utilizados en los chips de la serie Cortex son los mismos, la diferencia es principalmente la diferencia en el chip fuera del núcleo (el fabricante del chip determina principalmente los periféricos del chip). Estas diferencias dificultan que el software sea portado en chips con el mismo núcleo y diferentes periféricos. Para resolver el problema de compatibilidad del software de microcontrolador Cortex producido por diferentes fabricantes de chips, los fabricantes de ARM y chips han establecido el estándar CMSIS. La capa CMSIS se encuentra entre la capa de hardware y la capa de usuario. Proporciona una capa de abstracción de hardware que no tiene nada que ver con el fabricante del chip, proporciona una interfaz de software y debilita la diferencia de hardware.
El estándar CMSIS más importante es la capa central de CMSIS, que incluye:

  • Capa de función del núcleo: se utiliza para acceder a los registros del núcleo. Proporcionado por ARM.
  • Capa de acceso periférico del dispositivo: proporciona direcciones periféricas en el chip y definiciones de interrupción, principalmente proporcionadas por los fabricantes de chips.

Directorio de la biblioteca STM32, función de archivo

El archivo de la biblioteca se puede descargar desde el sitio web oficial de ST. Aquí se utiliza la versión 3.5.0 como ejemplo para presentar la estructura de la biblioteca.

  • bibliotecas: el código fuente y los archivos de inicio de la biblioteca de controladores.
  • Proyecto: ejemplos y plantillas de proyectos escritos en la biblioteca de controladores.
  • utilidades: Contiene rutinas basadas en el tablero de experimentos oficial de ST.
  • stm32f10x_stdperiph_lib_um.chm: documento de ayuda de la biblioteca que presenta la descripción de la función de cada periférico.

Capa central de CMSIS

CMSIS / CM3 en la carpeta de bibliotecas es la biblioteca principal, que incluye

  • coresupport: Esto lo proporciona ARM, que tiene core_cm3.c y core_cm3.h, que implementa la asignación de registros centrales. La operación principal son los registros periféricos centrales.
  • deviceupport / ST / STM32F10x /: contiene algunos archivos definidos por los fabricantes de ST. El directorio startup / arm contiene los archivos de inicio de varios tipos de placas (aquí se divide con la capacidad de flash). El archivo stm32f10x.h implementa la asignación de todos los registros de periféricos en chip y es un archivo de encabezado muy importante. El archivo system_stm32f10x.c implementa la configuración del reloj STM32, y la función systemInit establece el reloj del sistema en 72M.

Interfaz de acceso periférico

El archivo STM32F10x_StdPeriph_Driver es un controlador escrito para cada fabricante de chips. Hay dos carpetas, Inc y SRC, que se utilizan para almacenar archivos de encabezado y archivos de origen. Tenga en cuenta que también hay un archivo misc.c que proporciona acceso periférico a la NVIC en el kernel. Este archivo debe agregarse al proyecto cuando se interrumpe la configuración.

Es necesario agregar varios archivos cuando se crea el proyecto:

  • stm32f10x_it.c Este archivo se utiliza especialmente para escribir funciones de servicio de interrupción. La función de la función de servicio de interrupción se implementa en ella. El fabricante define el nombre de la función y se puede encontrar en el archivo de inicio del ensamblaje.
  • system_stm32f10x.c: este archivo proporciona funciones para inicializar el reloj del sistema y expandir la memoria externa cuando se enciende el chip. La función systemInit se implementa en este archivo.
  • stm32f10x_conf.h: el archivo de encabezado de cada periférico de este archivo, si no necesita el archivo de encabezado, puede comentarlo en este archivo. Se incluye en stm32f10x.h.
  • stm32f10x.h: este archivo es muy importante, aquí se implementa la asignación de los registros de los periféricos en chip y el archivo de encabezado que contiene los periféricos en chip que deben usarse.

La relación entre los archivos de la biblioteca es la siguiente
Inserte la descripción de la imagen aquí

Crear un proyecto usando un archivo de biblioteca

La estructura del archivo de biblioteca STM32 se explica anteriormente, principalmente para facilitar el desarrollo del archivo de biblioteca en desarrollo. En la mayoría de los casos, los archivos de la biblioteca se utilizan para el desarrollo. Solo en casos excepcionales se utilizará la programación de registro ( como las funciones de servicio de interrupción que tienen requisitos estrictos sobre los recursos (tiempo de ejecución del código, memoria), luego se registra la programación ). A continuación se describe cómo usar el archivo de biblioteca para construir el proyecto.

Nueva carpeta de proyecto local

Cree una nueva "Plantilla de proyecto" en la computadora local, y luego cree las siguientes 6 carpetas debajo de ella.

  • Doc: el archivo utilizado para almacenar la descripción del programa, agregado por la persona que escribió el programa.
  • Bibliotecas: almacenan archivos de biblioteca. CMSIS almacena bibliotecas relacionadas con el núcleo CM3, y Periph_driver almacena archivos de biblioteca periférica.
  • Listado: Una lista de C / Ensamblado / Enlaces generados por el compilador durante la compilación.
  • salida: almacena información de depuración, archivos hexadecimales, información de vista previa, biblioteca de paquetes, etc. generada por compilación.
  • proyecto: usado para almacenar el proyecto.
  • usuario: el archivo del controlador escrito por el usuario. Entre ellos, stm32f10x_conf.h se utiliza para configurar el archivo de encabezado de la biblioteca, aquí se escriben las funciones relacionadas con la interrupción stm32f10x_it.h y stm32f10x_it.h. archivo de función principal main.c.

Nueva construcción

  • Abra KEIL5, cree un nuevo proyecto, elija el nombre del proyecto y luego seleccione el modelo de CPU. Los hábitos personales del proyecto se mantienen en el proyecto.
    Inserte la descripción de la imagen aquí
  • Agregue un archivo de grupo al proyecto. El archivo se obtiene de la carpeta del proyecto creado localmente.
    Inserte la descripción de la imagen aquí
  • Agregue archivos, copie los archivos de la biblioteca en el directorio de la carpeta correspondiente de la plantilla del proyecto y luego agregue estos archivos en el proyecto recién creado. Haga doble clic en el archivo de grupo y aparecerá la ruta para agregar el archivo. Al seleccionar el archivo puede
    Inserte la descripción de la imagen aquí
    crear un directorio y agregar un archivo o usar directamente administrar elementos del proyecto para procesarlo.
    Inserte la descripción de la imagen aquí

Configure la pestaña Varita mágica:

  • Si desea usar printf, debe marcar Usar Microlib en Target
    Inserte la descripción de la imagen aquí
  • En la opción de salida, ubique la carpeta de salida en la carpeta de salida en nuestro directorio de proyecto, verifique que el archivo HEX creará el archivo hexadecimal durante el proceso de compilación.
    Inserte la descripción de la imagen aquí
  • En la pestaña de listado, ubique el archivo de salida en la carpeta "Listado" en nuestro directorio de proyectos.
    Inserte la descripción de la imagen aquí
  • ** En la pestaña C / C ++, agregue la ruta del archivo de encabezado que se busca cuando se compilan la macro y el compilador. ** Si la ruta del archivo de encabezado se compila incorrectamente, se informará un error.
    Inserte la descripción de la imagen aquí
    Esto generará un proyecto. A continuación puede usar el archivo de la biblioteca para el desarrollo
Publicado 35 artículos originales · Me gusta1 · Visitas 1870

Supongo que te gusta

Origin blog.csdn.net/lzj_linux188/article/details/103723291
Recomendado
Clasificación