高端网站建设要,阿里云wordpress优化,线条类网站,网站管理建设工作输出比较简介和特性
-1-只有通用/高级定时器才能输出PWM
-2-占空比就是高电平所占的比例
-3-输出比较就是输出不同占空比的信号
工作方式说明
-1-1- PWM工作模式
-1-2- 有效/无效电平
有效电平可以设置为高或低电平#xff0c;是自己配置的
周期选择与计算
周期重…输出比较简介和特性
-1-只有通用/高级定时器才能输出PWM
-2-占空比就是高电平所占的比例
-3-输出比较就是输出不同占空比的信号
工作方式说明
-1-1- PWM工作模式
-1-2- 有效/无效电平
有效电平可以设置为高或低电平是自己配置的
周期选择与计算
周期重装载 * 预分频值 / 时钟频率 arr和psc是自己定义的 时钟频率可以查看时钟树即下图中的84MHZ F1和F4采用的时钟频率
F1通过72MHZ分频
F4通过84MHZ分频
HZ代表单位时间震荡次数如1MHZ就是一秒震荡1000000次
代码分享一路PWM输出F1可直接使用
void TIM3_PWM_Init(u16 arr,u16 psc)
{ GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定时器3时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); //使能GPIO外设和AFIO复用功能模块时钟GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //Timer3部分重映射 TIM3_CH2-PB5 //设置该引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形 GPIOB.5GPIO_InitStructure.GPIO_Pin GPIO_Pin_5; //TIM_CH2GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; //复用推挽输出GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOB, GPIO_InitStructure);//初始化GPIO//初始化TIM3TIM_TimeBaseStructure.TIM_Period arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值TIM_TimeBaseStructure.TIM_Prescaler psc; //设置用来作为TIMx时钟频率除数的预分频值 TIM_TimeBaseStructure.TIM_ClockDivision 0; //设置时钟分割:TDTS Tck_timTIM_TimeBaseStructure.TIM_CounterMode TIM_CounterMode_Up; //TIM向上计数模式TIM_TimeBaseInit(TIM3, TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位//初始化TIM3 Channel2 PWM模式 TIM_OCInitStructure.TIM_OCMode TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2TIM_OCInitStructure.TIM_OutputState TIM_OutputState_Enable; //比较输出使能TIM_OCInitStructure.TIM_OCPolarity TIM_OCPolarity_High; //输出极性:TIM输出比较极性高TIM_OC2Init(TIM3, TIM_OCInitStructure); //根据T指定的参数初始化外设TIM3 OC2TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIM3在CCR2上的预装载寄存器TIM_Cmd(TIM3, ENABLE); //使能TIM3}代码分享四路PWM输出F4可直接使用
#include stm32f4xx.hTIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
uint16_t CCR1_Val 333;
uint16_t CCR2_Val 249;
uint16_t CCR3_Val 166;
uint16_t CCR4_Val 83;
uint16_t PrescalerValue 0;void TIM_Config(void);void PWM_Config (void);
int main()
{TIM_Config();PWM_Config();while (1){}}void TIM_Config(void){GPIO_InitTypeDef GPIO_InitStructure;/* TIM3 clock enable */RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);/* GPIOC clock enable */RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);/* GPIOC Configuration: TIM3 CH1 (PC6), TIM3 CH2 (PC7), TIM3 CH3 (PC8) and TIM3 CH4 (PC9) */GPIO_InitStructure.GPIO_Pin GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF;GPIO_InitStructure.GPIO_Speed GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_OType GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd GPIO_PuPd_UP ;GPIO_Init(GPIOC, GPIO_InitStructure); /* Connect TIM3 pins to AF2 */ GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_TIM3);GPIO_PinAFConfig(GPIOC, GPIO_PinSource7, GPIO_AF_TIM3); GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_TIM3);GPIO_PinAFConfig(GPIOC, GPIO_PinSource9, GPIO_AF_TIM3); }void PWM_Config (void)
{PrescalerValue (uint16_t) ((SystemCoreClock /2) / 21000000) - 1;/* Time base configuration */TIM_TimeBaseStructure.TIM_Period 665;TIM_TimeBaseStructure.TIM_Prescaler PrescalerValue;TIM_TimeBaseStructure.TIM_ClockDivision 0;TIM_TimeBaseStructure.TIM_CounterMode TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3, TIM_TimeBaseStructure);/* PWM1 Mode configuration: Channel1 */TIM_OCInitStructure.TIM_OCMode TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse CCR1_Val;TIM_OCInitStructure.TIM_OCPolarity TIM_OCPolarity_High;TIM_OC1Init(TIM3, TIM_OCInitStructure);TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);/* PWM1 Mode configuration: Channel2 */TIM_OCInitStructure.TIM_OutputState TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse CCR2_Val;TIM_OC2Init(TIM3, TIM_OCInitStructure);TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);/* PWM1 Mode configuration: Channel3 */TIM_OCInitStructure.TIM_OutputState TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse CCR3_Val;TIM_OC3Init(TIM3, TIM_OCInitStructure);TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);/* PWM1 Mode configuration: Channel4 */TIM_OCInitStructure.TIM_OutputState TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse CCR4_Val;TIM_OC4Init(TIM3, TIM_OCInitStructure);TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);TIM_ARRPreloadConfig(TIM3, ENABLE);/* TIM3 enable counter */TIM_Cmd(TIM3, ENABLE);}
全部工程获取
三联关注后点击头像获取