Enlace de descarga gratuita del paquete de firmware oficial de la serie STM32F10x
Crear un nuevo proyecto STM32
Paso 1: Crear un archivo de proyecto
1. Cree una nueva temperatura de directorio de proyecto
2. Cree cuatro carpetas nuevas en el directorio temporal del proyecto
(1) USUARIO : almacene el archivo de proyecto (plantilla), el archivo de función principal main.c y system_stm32f10x.c, etc.
(2) NÚCLEO : almacenar archivos básicos y archivos de inicio.
(3) OBJ : almacena los archivos del proceso de compilación y los archivos hexadecimales.
(4) STM32F103 : almacene los archivos de código fuente de la función de biblioteca proporcionados oficialmente por ST.
Vista previa del directorio del proyecto:
3. Asigne un nombre a la nueva plantilla de proyecto y guárdela en la carpeta USUARIO, y cree el proyecto de acuerdo con los pasos de la imagen.
Paso 2: Importe los archivos en la biblioteca de firmware stm32
1. Abra el archivo de la biblioteca de firmware STM32F10x (el enlace de descarga gratuito se encuentra en la parte superior del artículo)
(2) Navegue al directorio: STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport, copie el archivo core_cm3.c y el archivo core_cm3.h a CORE. Luego busque el directorio STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\a rm y copie el archivo startup_stm32f10x_hd.s dentro de CORE. Aquí hemos explicado que los chips con diferentes capacidades usan diferentes archivos de inicio. Nuestro chip STM32F103ZET6 es un chip de gran capacidad, así que elija este archivo de inicio.
detalles de la siguiente manera:
(3) Navegue al directorio: STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x, copie los tres archivos dentro de stm32f10x.h, system_stm32f10x.c , system_stm32f10x.h a nuestro directorio USER. Luego copie los cuatro archivos main.c, stm32f10x_conf.h , stm32f10x_it.c , stm32f10x_it.h bajo STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template al directorio USER .
El efecto es el siguiente: (si hay carpetas LIistings y Objects, no hay efecto)
Paso 3: Agrega todos los archivos anteriores al proyecto
1. Agregue tres carpetas USER, CORE, FYLIB debajo del proyecto
2) Use el mismo método para agregar los archivos correspondientes a las carpetas USER y CORE respectivamente. Aquí, los archivos que deben agregarse en nuestro CORE son core_cm3.c, startup_stm32f10x_hd.s ( tenga en cuenta que el tipo de archivo es .c cuando se agrega de forma predeterminada, es decir, al agregar el archivo de inicio startup_stm32f10x_hd.s , debe seleccionar el tipo de archivo como Todos los archivos para Puede ver este archivo ) , los archivos que deben agregarse en el directorio USUARIO son main.c, stm32f10x_it.c, system_stm32f10x.c y, finalmente, haga clic en Aceptar.
El efecto es el siguiente:
2. Establezca la ubicación donde se genera el archivo hexadecimal, la ruta del archivo de encabezado y la definición de macro
(1) Establezca la ubicación de generación hexadecimal: haga clic en la varita mágica, seleccione Salida, haga clic en Seleccionar carpeta para objetos y ubíquela en la carpeta OBJ (si no configura Salida, los archivos generados por la compilación MDK5 se almacenarán en los Listados y carpetas Objetos).
(2) Establezca la ruta del archivo de encabezado y las variables globales de definición de macro: haga clic en la varita mágica, seleccione c/c++, haga clic en el botón a la derecha de Incluir ruta, aparecerá una ventana para configurar la ruta y luego agregaremos las tres directorios encima de la imagen. Recuerde, keil solo buscará en el directorio de primer nivel, por lo que si hay subdirectorios en su directorio, recuerde que la ruta debe ubicar el subdirectorio de último nivel. Luego haga clic en Aceptar, regrese a la interfaz c/c++ y complete "STM32F10X_HD, USE_STDPERIPH_DRIVER" en el cuadro de entrada Definir. Permítanme explicar aquí, si está utilizando una capacidad media, modifique STM32F10X_HD a STM32F10X_MD y modifique la capacidad pequeña a STM32F10X_LD. Luego haga clic en Aceptar.
detalles de la siguiente manera:
Paso 4: Modifique la función principal y genere un archivo hexadecimal
1. Cambie el código en main.c bajo USUARIO al siguiente código (el código provisto para el átomo puntual):
#include "stm32f10x.h"
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|
RCC_APB2Periph_GPIOE, ENABLE); //使用PE,PB端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5端口设置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50Mhz
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5输出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1-->PE.5推挽输出
GPIO_Init(GPIOE, &GPIO_InitStructure); //初始化GPIO
GPIO_SetBits(GPIOE,GPIO_Pin_5); //PE.5输出高
while(1)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
Delay(3000000);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
Delay(3000000);
}
}
2. Generar archivo hexadecimal
(1) Haga clic en la varita mágica, ingrese al menú de configuración y seleccione Salida. Luego marque las siguientes tres opciones. Entre ellos, Create HEX file es para compilar y generar un archivo hexadecimal , y Browser Information es para ver definiciones de variables y funciones.
(2) Después de configurar los pasos anteriores, descargue el archivo hexadecimal al microcontrolador con el software flymcu, y podrá observar que las dos luces LED parpadean alternativamente.
Paso 5: Agregar archivo de SISTEMA
archivo SISTEMA
1. De acuerdo con el paso 3, cree una nueva carpeta SYSTEM en el proyecto y agregue delay.c, sys.c, usart.c en el archivo SYSTEM proporcionado a la carpeta del proyecto SYSTEM.
El efecto es el siguiente:
2. Agregue los subdirectorios delay, sys y usart en la carpeta SYSTEM a Path de acuerdo con el método de configuración de archivos de encabezado en el paso 3.2.
detalles de la siguiente manera:
En este punto, la nueva plantilla de proyecto se ha configurado y, finalmente, recuerde guardar todos los archivos, de lo contrario, será una pérdida de trabajo.