Directorio de artículos
- Comparación de tiempos con 51 microcontroladores
- Principio de funcionamiento del temporizador stm32:
- Recursos del temporizador STM32F103C8T6:
- Fuente del reloj del temporizador:
- La fórmula de cálculo del tiempo de desbordamiento del temporizador es:
- Recursos PWM
- Modo de salida PWM:
- Configuración PWM (Cube Max)
- Finalizar
Comparación de tiempos con 51 microcontroladores
Retraso del microcontrolador 51 (sincronización del software):
//由stc软件生成的51延时代码
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
Desventajas: impreciso, ocupa recursos de CPU
Principio de funcionamiento del temporizador stm32:
Utilice una base de tiempo precisa para implementar funciones de sincronización a través del hardware. El núcleo del cronómetro es el contador.
Clasificación del temporizador:
- Temporizador básico (TIM6~TIM7)
- Temporizador general (TIM2~TIM5)
- Temporizadores avanzados (TIM1 y TIM8)
Recursos del temporizador STM32F103C8T6:
Introducción general al temporizador:
- Contador de carga automática ascendente, descendente y ascendente/descendente de 16 bits (TIMx_CNT).
Preescalador programable de 16 bits (puede modificarse en tiempo real) (TIMx_PSC), el coeficiente de división de la frecuencia del reloj del contador es cualquier valor entre 1 y 65535 .- 4 canales independientes (TIMx_CH1~4), estos canales se pueden utilizar como:
A. Captura de entrada
B. Comparación de salida
C.Generación PWM (modo alineado en el centro o en el borde)
D. Salida en modo de pulso único- El circuito de sincronización de temporizadores y sus interconexiones (un temporizador se puede utilizar para controlar otro temporizador) se puede controlar mediante señales externas (TIMx_ETR)
.- La interrupción/DMA se genera cuando ocurren los siguientes eventos:
A. Actualización: contador desbordado/insuficiente, inicialización del contador (mediante software o disparador interno/externo)
B. Eventos de activación (inicio del contador, parada, inicialización o conteo activado por interno/externo)
C. Captura de entradaD
. Comparación de resultados
E. Admite codificador incremental (cuadratura) y circuitos de sensor Hall para posicionamiento
F. Entrada de disparo como reloj externo o gestión de corriente ciclo a ciclo
Modo de conteo del temporizador:
Fuente del reloj del temporizador:
La fórmula de cálculo del tiempo de desbordamiento del temporizador es:
(PSC es el coeficiente de división de frecuencia) (ARR es el valor de recarga) (Tout es el tiempo de salida (requerido)) (Tclk es la frecuencia del reloj)
Conocido: Tclk = 72 MHZ.
Por ejemplo, si desea cronometrar 1000 ms, entonces: PSC=7199, ARR=9999, Tclk=72M
################################################## ###########################
Recursos PWM
- Temporizador avanzado (TIM1): 7 canales
- Temporizador general (TIM2~TIM4): 4 canales cada uno
Modo de salida PWM:
-
Modo PWM 1: Cuando se cuenta hacia arriba, una vez CNT < CCRx, la salida es un nivel válido, de lo contrario es un nivel no válido; cuando se cuenta hacia atrás, una vez CNT
> CCRx, la salida es un nivel no válido, de lo contrario es un nivel válido. -
Modo PWM 2: Cuando se cuenta hacia arriba, la salida es un nivel válido una vez CNT < CCRx, de lo contrario es un nivel válido; cuando se cuenta hacia atrás, la salida es un nivel válido
una vez CNT > CCRx, de lo contrario es un nivel no válido.
Ciclo de trabajo PWM: determinado por el registro TIMx_CCRx.
Configuración PWM (Cube Max)
//启动tim2
HAL_TIM_Base_Start_IT(&htim2);
//配置占空比
//参数:句柄,通道,值
__HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_3, pwmVal);
Experimento de luz respiratoria PWM
int main()
{
// 定义变量
uint16_t pwmVal=0; //调整PWM占空比
uint8_t flag=1; //设置改变方向。1:占空比越来越大;0:占空比越来越小
// 使能 Timer4 第3通道 PWM 输出
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3);
// while循环实现呼吸灯效果
while (1)
{
HAL_Delay(1);
if (flag)
pwmVal++;
else
pwmVal--;
if (pwmVal > 500)
flag = 0;
if (pwmVal == 0)
flag = 1;
//修改比较值,修改占空比
__HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_3, pwmVal);
}
}
Finalizar
Si tiene alguna pregunta, no dude en plantearla y avanzar juntos.