STM32f103定时器输出PWM波驱动LED的呼吸灯
-
资源ID:88627260
资源大小:12.33KB
全文页数:3页
- 资源格式: DOCX
下载积分:15金贝
快捷下载
账号登录下载
微信登录下载
微信扫一扫登录
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
|
下载须知 | 常见问题汇总
|
STM32f103定时器输出PWM波驱动LED的呼吸灯
STM32f103 定时器输出PWM波控制LED输出呼吸灯(根据正点原子程序)定时器部分:time.c 与time.hTime.h函数#ifndef _TIME_H#define _TIME_Hvoid TIME_PWM_Init(u16 arr,u16 psc);#endifTime.c 函数#include "time.h"/ 定时器输出PWM波,控制LED(PD12),重映射到TIME4_CHI/*/void TIME_PWM_Init(u16 arr,u16 psc) GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;TIM_OCInitTypeDef TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); /RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO,ENABLE);/GPIO_PinRemapConfig(GPIO_Remap_TIM4,ENABLE); /重映射TIM4使能GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitStructure); / 初始化GPIO口为复用推完输出/ 初始化TIM4TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;/向上计数TIM_TimeBaseInitStructure.TIM_Period=arr; /TIM_TimeBaseInitStructure.TIM_Prescaler=psc;/预分频系数 TIM_TimeBaseInitStructure.TIM_ClockDivision = 0;TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure); / 初始化TIM4_CHIpwm模式TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;/ 极性选择TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;/ TIM_OC1Init(TIM4,&TIM_OCInitStructure); /TIM_OC1PreloadConfig(TIM4,TIM_OCPreload_Enable); / 使能TIM4在ccr1上的预装载寄存器TIM_Cmd(TIM4,ENABLE); /使能TIM4Main函数#include "stm32f10x.h"#include "led.h"#include "delay.h"#include "time.h"int main(void)u16 led0pwmval=0;u8 dir=1; delay_init();TIME_PWM_Init(899,0); / 不分频 产生一个pwm频率为72MHz/900=80KHzwhile(1) delay_ms(1); if(dir) led0pwmval+; else led0pwmval-;if(led0pwmval>600) dir=0; if(led0pwmval=0) dir=1;TIM4->CCR1=led0pwmval;