标题:
基于STM32的PWM呼吸灯源码
[打印本页]
作者:
tapRHIC
时间:
2018-11-21 20:20
标题:
基于STM32的PWM呼吸灯源码
主要是STM32103系列的应用,适合新手。非喜勿喷。
单片机源程序如下:
#include"PWM.h"
void TIM3_CH1_PWM_Init(u16 pre,u16 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;//端口
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//推挽输出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//输出速度
GPIO_Init(GPIOC,&GPIO_InitStructure);
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);//映射到PC6
TIM_TimeBaseInitStructure.TIM_Period=pre;//自动重载值
TIM_TimeBaseInitStructure.TIM_Prescaler=psc;
TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;//预分频系数(1分频)
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;//计数模式
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
TIM_OC1Init(TIM3,&TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM3,ENABLE);
TIM_Cmd(TIM3,ENABLE);
}
复制代码
#include"stm32f10x.h"
#include"led.h"
#include"system.h"
#include"SysTick.h"
#include"PWM.h"
int main()
{
u16 i=0;
u8 fx=0;
SysTick_Init(72);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
LED_Init();
TIM3_CH1_PWM_Init(500,72-1);//ARR频率2K
while(1)
{
if(fx==0)
{
i++;
if(i==300)
{
fx=1;
}
}
else
{
i--;
if(i==0)
{
fx=0;
}
}
TIM_SetCompare1(TIM3,i);
delay_ms(10);
}
}
复制代码
所有资料51hei提供下载:
实验13PWM呼吸灯.rar
(283.36 KB, 下载次数: 55)
2018-11-22 01:40 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
臧梦涵
时间:
2018-12-10 18:57
有原理图吗
作者:
pm1981
时间:
2018-12-28 14:41
看一下
作者:
DBGB123
时间:
2019-3-11 11:38
楼主:提供原理图
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1