发新帖我要提问
12
返回列表
打印
[STM32F7]

STM32F103 使用TIM3产生四路PWM

[复制链接]
楼主: 丢丢手绢666
手机看帖
扫描二维码
随时随地手机跟帖
21
丢丢手绢666|  楼主 | 2021-10-27 17:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
   TIM_Cmd(TIM2,DISABLE);
        //通过循环让灯闪烁
    while (aa){
        GPIO_SetBits(GPIOC,GPIO_Pin_3);
        delay_ms(10);
        GPIO_ResetBits(GPIOC,GPIO_Pin_3);
        delay_ms(10);
        aa--;
    }
//使灯的状态为灭
GPIO_SetBits(GPIOC,GPIO_Pin_3);
TIM_Cmd(TIM2,ENABLE);
}        

使用特权

评论回复
22
丢丢手绢666|  楼主 | 2021-10-27 17:01 | 只看该作者
}

void delay_ms(u32 i)
{
u32 temp;
SysTick->LOAD=9000*i; //设置重装数值, 72MHZ时
SysTick->CTRL=0X01; //使能,减到零是无动作,采用外部时钟源
SysTick->VAL=0; //清零计数器
do
{
temp=SysTick->CTRL; //读取当前倒计数值
}
while((temp&0x01)&&(!(temp&(1<<16)))); //等待时间到达
SysTick->CTRL=0; //关闭计数器
SysTick->VAL=0; //清空计数器
}

使用特权

评论回复
23
丢丢手绢666|  楼主 | 2021-10-27 17:02 | 只看该作者
在产生PWM时,如果输出引脚已经被使用,就要对引脚进行重映射,阅读《STM32中文参考手册2010》第119页可知:

使用特权

评论回复
24
丢丢手绢666|  楼主 | 2021-10-27 17:02 | 只看该作者
对TIM3而言:

1、当没有重映射时,TIM3的四个通道CH1,CH2,CH3,CH4分别对应PA6,PA7,PB0,PB1
2、当部分重映射时,TIM3的四个通道CH1,CH2,CH3,CH4分别对应PB4,PB5,PB0,PB1
3、当完全重映射时,TIM3的四个通道CH1,CH2,CH3,CH4分别对应PC6,PC7,PC8,PC9

使用特权

评论回复
25
丢丢手绢666|  楼主 | 2021-10-27 17:03 | 只看该作者
为了整齐,我们选择完全重映射,使用的函数是:

GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);
如果想使用部分映射,参数用GPIO_PartialRemap_TIM3:

GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);

使用特权

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

本版积分规则