博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PWM输出,呼吸灯
阅读量:4346 次
发布时间:2019-06-07

本文共 1706 字,大约阅读时间需要 5 分钟。

一、初始化GPIO

使用PB1,查芯片手册对应TIM3_CH4

GPIO_InitTypeDef GPIO_InitStructure;        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                GPIO_Init(GPIOB, &GPIO_InitStructure);

 

 

二、初始化TIM和PWM

   TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;    TIM_OCInitTypeDef TIM_OCInitStructure;    /* 周期1000 */    TIM_TimeBaseStructure.TIM_Period = 999;    /* 定时器时间间隔1微秒 */    TIM_TimeBaseStructure.TIM_Prescaler = 0;    TIM_TimeBaseStructure.TIM_ClockDivision = 0;    /* 向上计数 */    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;    /* 配置 */    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);        /* 选择PWM1模式 */    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;    /* 允许输出模式 */    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;        /* 匹配值 */    TIM_OCInitStructure.TIM_Pulse = 1000;        /* 设置小于匹配值时为高电平 */    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;    /* 使能通道1 */    TIM_OC4Init(TIM3, &TIM_OCInitStructure);            TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);    TIM_ARRPreloadConfig(TIM3, ENABLE);    TIM_Cmd(TIM3, ENABLE);

 

 

三、main函数部分

通过修改CCRx寄存器,改变占空比。从而调整电流大小

while(1)    {            if(CCR3_Val >=0 && CCR3_Val <= 1000)            {                CCR3_Val -= 50;                Delay(1);            }            else            {                CCR3_Val = 1000;                Delay(1);            }            TIM3->CCR4 = CCR3_Val;            Delay(1);    }

 

转载于:https://www.cnblogs.com/ch122633/p/7363256.html

你可能感兴趣的文章
Python 线程 进程 协程
查看>>
iOS语言中的KVO机制
查看>>
excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法
查看>>
响应式web设计之CSS3 Media Queries
查看>>
实验三
查看>>
机器码和字节码
查看>>
环形菜单的实现
查看>>
【解决Chrome浏览器和IE浏览器上传附件兼容的问题 -- Chrome关闭flash后,uploadify插件不可用的解决办法】...
查看>>
34 帧动画
查看>>
二次剩余及欧拉准则
查看>>
thymeleaf 自定义标签
查看>>
关于WordCount的作业
查看>>
UIView的layoutSubviews,initWithFrame,initWithCoder方法
查看>>
STM32+IAP方案 实现网络升级应用固件
查看>>
用74HC165读8个按键状态
查看>>
jpg转bmp(使用libjpeg)
查看>>
linear-gradient常用实现效果
查看>>
sql语言的一大类 DML 数据的操纵语言
查看>>
VMware黑屏解决方法
查看>>
JS中各种跳转解析
查看>>