基础计时器控制LED灯定时熄灭开启设置分频器计时频率为F72Mhz/72001X10^410000这样一次计数就是0.1ms方便计算设置ARRARR设置为1000这样计时器1000次进行重装载也就是0.1msX1000100ms进行重装载关于为什么需要减1那是因为在更新的时候系统会默认1配置按键与LED灯启动中断//启动定时器中断 HAL_TIM_Base_Start_IT(htim2);中断溢出回调函数void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if (htim - Instance TIM2) { //翻转电平 HAL_GPIO_TogglePin(GPIOA,LED_R_Pin|LED_G_Pin|LED_B_Pin); } }主循环程序while (1) { if (HAL_GPIO_ReadPin(GPIOA,KEY1_Pin) GPIO_PIN_SET) { mode !mode; HAL_TIM_Base_Stop_IT(htim2); __HAL_TIM_SET_AUTORELOAD(htim2,tim2_arr[mode]); __HAL_TIM_SET_COUNTER(htim2,0);//计数值清0 HAL_TIM_Base_Start_IT(htim2); while(HAL_GPIO_ReadPin(GPIOA,KEY1_Pin) GPIO_PIN_SET); } /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ }应用——PWMPWM(Pulse Width Modulation)即脉宽调制,是一种通过控制**高电平持续时间占空比**来模拟连续电压信号的方法。由定时器的通道输出提供具有固定频率、可调脉宽的方波信号。信号频率由自动重装寄存器ARR的值决定占空比由比较寄存器CCR的值决定。假设分频设置为7200那么计时频率为F72Mhz/72001X10^410000也就是每次计数就是0.1ms,ARR为自动重装寄存器如果设置为100那PWM波的周期就是T100X0.1毫秒10ms那么PWM周期就是10ms,CCR就是控制占空比的。举个例子例如ARR100CRR为50这两个都是计数器ARR决定PWM周期CCR决定在100计数中有多少计数是高电平或者低电平实验TIM分频采用72F72Mhz/721X10^41000000,那么每次计数为1us,那么ARR20X1000CubeX PWM设置这里没有舵机我们示波器来测试输出的PWM波呼吸灯cubex设置pwm输出改为低电平主程序while (1) { __HAL_TIM_SET_COMPARE(htim2,TIM_CHANNEL_2,pwm_val); __HAL_TIM_SET_COMPARE(htim2,TIM_CHANNEL_3,pwm_val); __HAL_TIM_SET_COMPARE(htim2,TIM_CHANNEL_4,pwm_val); pwm_val dir; if (pwm_val 1000) dir -10; if (pwm_val 0) dir 10; HAL_Delay(5); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }TIM触发ADC采集TIM触发ADC采集内部温度流程步骤开始- 流程起点TIM3 TRGO周期性触发- 定时器每1秒产生一次触发信号触发ADC1进行单次转换- ADC被触发执行单次模数转换采集内部温度值- 读取内部温度传感器的电压值使用公式计算温度- 应用温度计算公式内部温度计算公式T(°C) (1.43 - 当前电压) / 0.0043 25定时器TIM3设置采集内部数据就是用内部时钟ADC设置ADC采集时间CubeX 界面编译选项打开串口软件实验现象