El problema de programar stm32 basado en keil MDK. . . Construcción de un entorno de desarrollo de sistemas integrados.
Hola, 1. Instale la biblioteca STM32. Descomprima el archivo stm32f10x_stdperiph_lib.zip descargado y obtenga tres carpetas: "Bibliotecas", "Proyecto" y "Utilidades". Copie estos tres directorios en el directorio de instalación de ". Keil uVision4" se sobrescribe y se fusiona con los archivos del directorio. 2. Cree un nuevo proyecto 1. Abra "Keil uVision4", seleccione Nuevo proyecto en el menú Proyecto, seleccione la ubicación donde se guardará el proyecto y, en el cuadro de diálogo emergente "Seleccionar dispositivo para el destino", seleccione el modelo del microcontrolador STM32 utilizado, como "STM32F103C8", haga clic en Aceptar y luego haga clic en "NO" en el cuadro de diálogo emergente "Copiar código de inicio".
2. , haga clic en el menú contextual "Opción para destino objetivo1" "Establecer parámetros relacionados" en la pestaña [Salida], haga clic en "Crear archivo HEX", haga clic en "Seleccionar carpeta para objetos" para configurar el directorio de almacenamiento para el archivo obj generado temporalmente , por supuesto que no puede seleccionarlo;
3 Realice la siguiente definición en el cuadro Definir de "Sistemas de preprocesador" en la pestaña [C/C++]: USE_STDPERIPH_DRIVER,STM32F10X_MD
. donde USE_STDPERIPH_DRIVER indica utilizar la biblioteca proporcionada por ST, en el archivo "system_stm32f10x.c". El archivo "stm32f10x.h" incluido tiene la siguiente definición:
#ifdef USE_STDPERIPH_DRIVER #include "stm32f10x_conf.h"# endifLa macro USE_STDPERIPH_DRIVER agregada en la opción [C/C++] tiene esta función. El archivo que contiene "stm32f10x_conf.h" se llama "archivo de configuración de biblioteca" y se usa para configurar los archivos que necesita para usar la biblioteca. Si necesita usar GPIO, debe agregar #include "stm32f10x_gpio.h" a este archivo. Este archivo se puede encontrar en la rutina proporcionada en la biblioteca STM32 (C:\Keil\ARM\Project\STM32F10x_StdPeriph_Examples). Para copiar los dos archivos "stm32f10x_it.c" y "stm32f10x_it.h" en la rutina, estos dos archivos se utilizan para completar el programa de servicio de interrupción medio-pesado STM32. Copie los siguientes tres archivos al directorio de usuario de su proyecto. uso futuro: "stm32f10x_conf.h", "stm32f10x_it.c", "stm32f10x_it.h" STM32F10X_MD indica que se utiliza la CPU de la serie STM32F10X y que la densidad del código Flash de la CPU es de dispositivos de densidad media. Esto se puede obtener consultando el. Manual de CPU relacionado con la CPU utilizada.
Luego establezca la ruta utilizada por include en "Incluir rutas" en la parte inferior de la pestaña, como se muestra en la siguiente figura: donde .\user path es la ruta utilizada para guardar el archivo de encabezado que define 4. Seleccione la pestaña [Depurar] para usar "Cortex-M/R J-Link/J-Trace", luego haga clic en el botón "Configuración", seleccione la pestaña [Descarga Flash] en el cuadro de diálogo recién abierto y haga clic en Botón "Agregar" para agregar programación. La CPU seleccionada en este ejemplo es STM32F103C8 y su Flash es de densidad media. El modelo de Flash en chip es "STM32F10X Med-density Flash On-chip-Flash 128K". haga clic en Aceptar para guardar la configuración. 5. Para "Usar dispositivo de destino para la programación Flash" en la pestaña [Utilidades], seleccione el mismo depurador "Cortex-M/R J-Link/J-Trace" que en la pestaña [Depurar] 6. Luego, nuevamente con el botón derecho; haga clic en "Destino 1" a la izquierda, seleccione "Componentes del administrador" en el menú y luego cree tres nuevos grupos en el "Grupo" de la pestaña "Componentes del proyecto", denominados "usuario", "libs" y "cmsis". " "1. Se utiliza para guardar los archivos C propios del usuario, la biblioteca de stm32f10x_stdperiph_lib y el archivo de inicio de cortex-m3, etc.
usuarios:
Keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\ system_stm32f10x.c (stm32f10x_it.c Este archivo define los servicios de interrupción para varias interrupciones función)
libs:
Keil\ARM\ Libraries\ STM32F10x_StdPeriph_Driver\src\*.*
cmsis:
Keil\ARM \ Bibliotecas\ CMSIS\ CM3\ CoreSupport\core_cm3.c
Keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
keil\ARM\Libraries \CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
(Este archivo está relacionado con la densidad de código de la memoria Flash de la CPU. El STM32F103C8 en este ejemplo es de densidad media, por lo que xxx_md está seleccionado.