【STM32F103攻城笔记】PWM功能实战
来源:互联网 发布:搞怪p图软件 编辑:程序博客网 时间:2024/05/21 20:24
系统时钟是默认的HSI的8MHz频率!这个会影响计时器的计数频率,所以要知道要这个频率,以保证以后自己可以根据分频来控制PWM输出波形的频率大小!这个对于实际项目中的开发很重要,大都电机对于频率都会有要求,这里先不纠结这个,我们先来产生不同占空比的波形!系统时钟默认为8MHz。
第一步:初始化相关寄存器。定时器选择TIM3,通道选择CH2,即PA7端口。(这里注意,PA7口和TIM3_CH3是同一端口的复用功能,所以必须要对应,如果不想不对应的话就要设置映射,这里不对这个进行设置说明)。
代码如下(库函数实现):
第二步:写入参数,我要一个以周期为800个计数值,不分频的定时器,
代码就是 TIM3_PWM_Init(799,0); (这里注意,定时器是从0开始的,所以800个计数值就是0~799,所以设置799)
最后设置占空比的库函数就是TIM_SetCompare2(TIM3,400);
这个函数的第一个值就是选择定时器,第二个参数就是我们在刚才设置的800个计数值中所占的个数,这样占空比就等于TIMCompare2/800=400/800 =0.5即高低电平个占1/2周期!(注意TIMCompare2是对2通道,如果上面我们设置的是1通道那应该为TIMCompare1了,一次类推。。)
最后主函数代码:
int main (void)
{
TIM3_PWM_Init(799,0);
while(1)
{
TIM_SetCompare2(TIM3,400);
}
}
我们利用示波器连接PA7端口就可以看到占空比为50%的波形了!
如果TIM_SetCompare2(TIM3,200),我们可以看到高电平占空比为200/800=25%的波形了!
- 【STM32F103攻城笔记】PWM功能实战
- 【STM32F103攻城笔记】串口 实战
- 【STM32F103攻城笔记】输入捕捉实战
- STM32F103学习笔记 (八) PWM输出
- NuttX 入门笔记5 STM32F103C8T6(STM32f103-minimum) PWM测试
- 【STM32F103攻城笔记】内部晶振HSI倍频设置系统时钟
- 【STM32F103攻城笔记】外部晶振HSE倍频设置系统时钟
- 【STM32F103攻城笔记】STM32之MDK(Keil)环境搭建(一)
- 【STM32F103攻城笔记】STM32之MDK(Keil)环境搭建(二)
- stm32f103 pwm模式配置总结
- STM32F103+HAL+PWM+DMA+WS2812
- NuttX 入门笔记6 STM32F103C8T6(STM32f103-minimum) 多路PWM测试-RGBLED
- STM32F103定时器输出PWM波控制直流电机
- stm32f103使用TIM1和TIM2输出PWM
- STM32F103定时器功能比较
- STM32 通用定时器的输出PWM功能 学习笔记
- Stm32f103 ADC 学习笔记
- Stm32f103 ADC 学习笔记
- intent用法总结
- nginx编译安装
- 线程池你需要了解哪些
- Java中Synchronized的用法
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
- 【STM32F103攻城笔记】PWM功能实战
- 手把手教你使用 RxJava 2.0(二)
- [转]深度学习及并行化实现概述
- 借助Stetho在Chrome上调试Android网络&数据库
- +function ($) { "use strict";}(window.jQuery);全面分析
- QTableWidget删除操作
- SVN the serever may be unreachable or the URL may be incorrect
- 深入理解java虚拟机(笔记)
- php中的匿名函数和闭包