关于com的网站,个人网站的域名注册,php网站500错误,网页美工设计学习STM32F103 CubeMX 定时器输出PWM控制呼吸灯 1. 生成代码1. 1 配置外部时钟#xff0c;SWD口1.2 配置定时器31.3 配置定时器2 2. 代码编写的部分 使用的cubmx 软件的版本#xff1a;6.2.0 最新版本 6.10#xff08;2024年3月11日#xff09;
1. 生成代码
1. 1 配置外部时钟… STM32F103 CubeMX 定时器输出PWM控制呼吸灯 1. 生成代码1. 1 配置外部时钟SWD口1.2 配置定时器31.3 配置定时器2 2. 代码编写的部分 使用的cubmx 软件的版本6.2.0 最新版本 6.102024年3月11日
1. 生成代码
1. 1 配置外部时钟SWD口 1.2 配置定时器3
定时器的配置为500 所以250对应的就是50% 的占空比。
1.3 配置定时器2
使能定时器 使能定时器的中断服务函数这样下面就可以添加中断了。
时钟运行在72M上 下面就是配置工程和生成代码
2. 代码编写的部分
这里启动了定时器2和定时器3定时器2 是做为中断使用定时器3则是直接调用的。 /* USER CODE BEGIN 2 */HAL_TIM_Base_Start_IT(htim2);HAL_TIM_PWM_Start(htim3,TIM_CHANNEL_1);/* USER CODE END 2 */在while循环中对占空比进行调节从0-499的范围。 代码中__HAL_TIM_SetCompare 这个是用来控制定时器的占空比情况 也可以使用__HAL_TIM_SET_COMPARE 这个来替换两个完全相同
/* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */while (pwmVal 500){pwmVal;__HAL_TIM_SetCompare(htim3, TIM_CHANNEL_1, pwmVal); //修改比较值修改占空比
// TIM3-CCR1 pwmVal; 与上方相同HAL_Delay(1);}while (pwmVal){pwmVal--;__HAL_TIM_SetCompare(htim3, TIM_CHANNEL_1, pwmVal); //修改比较值修改占空比
// TIM3-CCR1 pwmVal; 与上方相同HAL_Delay(1);}HAL_Delay(200);}/* USER CODE END 3 */这个是定时器的中断服务函数每次中断中翻转GPIO 需要注意中断中不要增加比较费时的代码
/* USER CODE BEGIN 4 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{static unsigned char ledState 0;if (htim (htim2)){if (ledState 0)HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);elseHAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);ledState !ledState;}
}/* USER CODE END 4 */