Red de conocimiento informático - Problemas con los teléfonos móviles - STM32 obtiene el estado de desbordamiento del temporizador sin interrumpir

STM32 obtiene el estado de desbordamiento del temporizador sin interrumpir

Preparación:

STM32CubeMX

Placa central STM32RCT6

IDE Keil (MDK-ARM)

Pieza STM32CubeMX

1. Configure el reloj

Seleccione el chip de la serie STM32F103RCTx y configure el reloj. La configuración del reloj configurará automáticamente los pines del puerto IO

Inserte una descripción de la imagen aquí

. HCLK está configurado en la frecuencia más alta de 72 MHz

Inserte la descripción de la imagen aquí

2 Configure TIM

Inserte la descripción de la imagen aquí

Reloj interno. /* El código de usuario comienza 0 */

uint16_t Tim_cnt = 0; //recuento del temporizador

/* CÓDIGO DE USUARIO FINAL 0 */

1

2

3

1

2

3

Luego reescribe tim.c

anule la función HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) en el archivo. c archivo

Inserte descripción de la imagen aquí

/* Código de usuario BEGIN 1 */

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

{

if (htim->Instancia == htim1.Instancia)

{

Tim_ cnt++;

if (Tim_cnt= =500 ) //Ejecuta el siguiente código una vez en 0,5s

{

Tim_cnt=0; //Borrar 0

HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0); p>

}

> }

}

/* Fin del código de usuario 1 */

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1

2

3

4

5

6

6

p>

7

8

9

10

11

12

13

14

Establezca variables globales y agregue 1 cada vez que se ingrese la interrupción. La interrupción se ingresa una vez cada 1 ms, la escribimos cuando Tim_cnt = 500 (es decir, 0,5 s) Código que debe ejecutarse (no olvide borrar 0)

Compilar y descargar. para seleccionar el descargador correspondiente y verificar lo siguiente

Inserte una descripción de la imagen aquí

Ejecútelo

Documento del proyecto de este número -> Gitee

Inserta la descripción de la imagen aquí