STM32通用定时器产生PWM信号
- PWM信号
- stm32定时器PWM生成模式
- PWM配置基本步骤
- PWM周期计算
- CubeMX配置
- 代码展现
本期内容我将展示使用STM32通用定时器产生PWM信号,这里以定时器3通道3为例
PWM信号
如果还不懂的话,可以看看 : “蓝桥杯单片机学习7——PWM脉宽调制&控制LED的亮度” 。
stm32定时器PWM生成模式
PWM配置基本步骤
PWM周期计算
CubeMX配置
其他部分配置这里不做展示
代码展现
int main(void)
{
/* USER CODE BEGIN 1 */
// uint16_t temp = 250;
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_TIM3_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim3); //开启定时器3,并打开中断,这里不开启中断也可以
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3); //设置定时器3通道3产生PWM信号
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3,250); //设置CCRX的值,控制占空比为250/500 = 50%
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
定时器产生PWM信号过程中不需要用到中断所以不需要编写。。。。。。