信阳地区网站建设服务是否盈利?哪些公司是当地排名靠前的?
摘要:现在建网站赚钱吗,信阳网站建设公司排名,产品推广步骤,零基础网站建设教学培训前言 STM32F103系列的MCU,相比普通的51单片机,在输出硬件PWM这个功能上要强不少&
现在建网站赚钱吗,信阳网站建设公司排名,产品推广步骤,零基础网站建设教学培训前言
STM32F103系列的MCU#xff0c;相比普通的51单片机#xff0c;在输出硬件PWM这个功能上要强不少#xff0c;两者实现的方式都类似#xff0c;都是通过一个定时器来启用硬件PWM输出#xff0c;不过在输出PWM通道的数量上#xff0c;32F103要强上不少。仅通过一个高级…前言
STM32F103系列的MCU相比普通的51单片机在输出硬件PWM这个功能上要强不少两者实现的方式都类似都是通过一个定时器来启用硬件PWM输出不过在输出PWM通道的数量上32F103要强上不少。仅通过一个高级定时器1即TIM1就可以输出4路频率相同占空比独立的PWM信号这四路PWM还分别有互补通道且带死区和刹车功能。
利用TIM1来产生4路频率相同占空比不同的PWM信号
初始化的方法其实跟前面几篇文章初始化其他外设的步骤类似也是先定义一个结构体变量然后给这个结构体变量的成员配置好相应的初值最后调用初始化函数这样就完成外设初始化了。再通过调用开外设的函数就可以把外设功能使能。
首先定义一个结构体变量来初始化TIM1定义PWM信号的频率
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //配置时基结构体,声明一个结构体变量方便传参//时基初始化//
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); //开TIMER1外设时钟TIM_TimeBaseStructure.TIM_Prescaler 72-1;
// 计数器计数模式
TIM_TimeBaseStructure.TIM_CounterMode TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period 10000-1;// 时钟分频因子 - 一分频,配置死区时间需要用到
TIM_TimeBaseStructure.TIM_ClockDivision TIM_CKD_DIV4;// 重复寄存器的值,没有用到,不管
TIM_TimeBaseStructure.TIM_RepetitionCounter 0;TIM_TimeBaseInit(TIM1,TIM_TimeBaseStructure);我使用的是倍频到72M的时钟信号作为APB2的时钟总线然后我分频器选择的是72分频那么分频之后的周期就是1/1M即TIM1往上计数一次是1us然后计数周期我设置为了从0计数到9999即10000次耗时就是10ms。所以我设置的PWM频率就是100Hz的。
下一步开始设置PWM的结构体在手册中硬件PWM这部分内容是属于 高级定时器中的输出/比较模式 所以要配置PWM我们就要配置 输出/比较结构体。
