【STM32】STM32CUBEMX系列教程:定时器PWM输出实验
程序员文章站
2022-06-08 20:02:07
...
STM32CUBEMX系列教程:定时器PWM输出实验
环境:
1、STM32CubeMX 5.3
2、Atollic TrueSTUDIO for STM32 9.3.0
3、战舰迷你板(stm32f103rb)
本章效果为LED灯由PWM控制,由暗到亮,再由亮到暗,反复循环。
(一)配置LED灯引脚为输入模式
(二)配置定时器
频率的计算方法:
定时器配置频率为10KHZ,所以ARR=99,PSC=71,占空比范围就是ARR的范围:0-100,100就是全为高:
初始化定时器后要使能PWM输出:
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);
改变捕获比较值,也就是改变占空比:
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, val);
正点原子mini板的PA8是led灯,定时器3的PWM输出通道2是PA7,所以在板子上用跳线帽将PA8和PA7连接起来即可:
int main(void)
{
uint8_t mode = 1;
uint32_t led0pwmval = 0;
int i = 0;
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM3_Init();
MX_USART1_UART_Init();
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); // 使能PWM输出
while (1)
{
if (mode)
led0pwmval++;
else
led0pwmval--;
if (led0pwmval >= 100)
mode = 0;
if (led0pwmval == 0)
mode = 1;
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, led0pwmval); // 改变占空比
HAL_Delay(10);
i++;
if (i >= 100)
{
i = 0;
HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
}
}
}
ends…
上一篇: 蓝桥杯单片机独立按键和矩阵按键
下一篇: 用php扩展模块APC实现大文件上传