STM32 obtiene el estado de desbordamiento del temporizador sin interrumpir
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> 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í