8-STM32F1-pwm输出

STM32F1-pwm输出

以下内容部分摘抄自原子哥的书籍,开发板用的是正点原子的精英板

STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样, STM32 最多可以同时产生 30 路 PWM 输出! 这里使用TIM3输出4路pwm,其实TIM3最多也只能输出4路pwm。

每个定时器不同通道具体对应的哪个IO口在STM32的数据手册上有,这里的TIM3通道1-4分别对应PA6,PA7,PB0,PB1。
要配置pwm输出,主要配置3个部分,IO初始化、定时器初始化和输出通道初始化。

IO初始化;需要把IO配置为复用推挽输出,我记得使用复用功能一般都要打开IO复用时钟,但是这里好像不打开IO复用时钟也是可以正常使用的,这里只是示范其中一个IO的配置,其他pwm输出IO配置也是一样的。
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6;//PA6
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;//翻转速度=10MHZ
	GPIO_Init(GPIOA, &GPIO_InitStruct);//TIM3通道1IO口

定时器初始化;设置定时器分频也就是计数器的时钟。设置重装值arr,这个重装值和计数器的时钟决定了pwm的频率。还有就是设置计数器的计数模式了。这里系统时钟为72m,APB1为1分频,所以TIM3的输入时钟为36m。第三个参数是设置计数器的时钟频率,这里是设置为0.5mhz,第四个参数是设置重装值,也就是计数多少个计数器时钟就会溢出,这里设置的是200-1,其实就是计数200个就会溢出。按照这个设置,按理说输出频率应该是2.5khz,但是输出频率会是这个设置频率的2倍,原因是计数器计数到比较值的时候还会翻转一次,所以频率会加倍,比如要输出10k的pwm,那么这里就应该设置为5khz。
	TIM_TimeBaseInitStruct.TIM_Clo
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值