[其他ST产品] STM32F1定时器-PWM输出

[复制链接]
 楼主| 键盘手没手 发表于 2023-10-28 17:09 | 显示全部楼层
main函数
因为dir初始化为1,所以进入while循环后,led0pwmval++,等led0pwmval增加到大于300时,dir 被置为 0,led0pwmval又开始减少,减到0后,dir置为1,led0pwmval再增加,如此反复
 楼主| 键盘手没手 发表于 2023-10-28 17:10 | 显示全部楼层
调用TIM_SetCompare2函数往CCR2寄存器写入不断变化的led0pwmval值,输出PWM,LED灯呈呼吸灯的效果
 楼主| 键盘手没手 发表于 2023-10-28 17:10 | 显示全部楼层
#include "PWM.h"
int main()
{
        u16 led0pwmval = 0;
        u8 dir = 1;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);        //NVIC初始化分组
        LED_Init();                //LED初始化
        delay_init();        //延时初始化
        TIM_PWM_Init(899,0);        //不分频。PWM频率=72000000/900=80Khz
        while(1)
        {
                delay_ms(10);
                if(dir)
                {
                        led0pwmval++;
                }
                else
                {
                        led0pwmval--;
                }

                if(led0pwmval > 300){dir = 0;}
                if(led0pwmval == 0){dir = 1;}

                //往CCR2寄存器写入不断变化的led0pwmval值,调整比较值,就能输出不断变化的占空比了
                TIM_SetCompare2(TIM2,led0pwmval);
        }
}
Clyde011 发表于 2024-2-9 07:08 | 显示全部楼层

要在外部连接一个振荡电路提供时钟信号
公羊子丹 发表于 2024-2-9 08:01 | 显示全部楼层

影响控制IC
万图 发表于 2024-2-9 09:04 | 显示全部楼层

与15号引脚连接的C1称为旁路电容
Uriah 发表于 2024-2-9 10:07 | 显示全部楼层

时序电路是按时钟信号(CK)的上升沿(信号从L→H的变化)或下降沿(信号从H→L的变化)同步工作的
帛灿灿 发表于 2024-2-9 12:03 | 显示全部楼层

电压范围称为工作电源电压
Bblythe 发表于 2024-2-9 13:06 | 显示全部楼层

内部电路工作电圧是通过内部电压调节器调节电源电压得到的
周半梅 发表于 2024-2-9 15:02 | 显示全部楼层

减小滤波电容的等效串联电阻(ESR)
Pulitzer 发表于 2024-2-9 16:05 | 显示全部楼层

通常选择0.01μF~0.1μF的陶瓷电容作为旁路电容。
童雨竹 发表于 2024-2-9 18:01 | 显示全部楼层

通过电容方式耦合到不同层上邻近的引线上
Wordsworth 发表于 2024-2-9 19:04 | 显示全部楼层

防止因瞬间大电流引起的电源电压下降
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部