打印
[STM32F1]

PWM控制LED为啥不行啊

[复制链接]
527|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lockpor|  楼主 | 2022-7-30 12:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "stm32f10x.h"               

void PWM_Init(void)
{
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
        GPIO_InitTypeDef GPIO_InitStructure;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
        TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInitStructure.TIM_Period = 900 - 1;                //ARR
        TIM_TimeBaseInitStructure.TIM_Prescaler = 1 - 1;                //PSC
        TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;
        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseInitStructure);
        TIM_ARRPreloadConfig(TIM1, ENABLE);
       
        TIM_OCInitTypeDef TIM_OCInitStructure;
        TIM_OCStructInit(&TIM_OCInitStructure);
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_Pulse = 0;                //CCR
        TIM_OC1Init(TIM1, &TIM_OCInitStructure);       
        TIM_Cmd(TIM1, ENABLE);

}




#include "stm32f10x.h"                  // Device header
#include "PWM.h"
#include "delay.h"
#include "led.h"

uint8_t i;

int main(void)
{

        PWM_Init();
        LED1_ON();
       
        while (1)
        {
                for (i=0; i <=300; i++)
                {
                        PWM_SetCompare1(i);
                        delay_ms(10);
                }
                for (i = 0; i <= 300; i++)
                {
                        PWM_SetCompare1(300 - i);
                        delay_ms(10);
                }
        }
}

void PWM_SetCompare1(uint16_t Compare)
{
        TIM_SetCompare1(TIM1, Compare);
}

使用特权

评论回复
沙发
mutable| | 2022-8-2 20:32 | 只看该作者
怎么个不行法,输出对么

使用特权

评论回复
板凳
sjnh| | 2022-8-3 08:11 | 只看该作者
可以,是人的眼睛感觉的原因,例如(不准确,只是举例,以前测试的时候的现象)占空比从1%-10%很明显的明暗变化,但从10%-100%眼睛看到的几乎没变化

使用特权

评论回复
地板
renyaq| | 2022-8-3 22:39 | 只看该作者
你这个是说不通的

使用特权

评论回复
5
andygirl| | 2022-8-6 15:45 | 只看该作者
可以啊,呼吸灯不就是么

使用特权

评论回复
6
mutable| | 2022-8-8 21:03 | 只看该作者
把频率调慢一点试试看,或者示波器看看波形

使用特权

评论回复
7
jiekou001| | 2022-8-8 22:39 | 只看该作者
没有弄好肯定不行,我做过,可以的,加油。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝