lygo
获得 45 次赞
帮助过87人
其实这两种方式你懂一个就行了,其余一个是反向的,即就是极性和占空比是相反的。PWM1模式下:如果是向上计数模式,使能定时器后CNT(计数器的值)会从0开始往上数,如果CNT小于设置的值(CCR1)那么此时CC1通道输出的是高电平,大于设置的值时是低电平,CNT继续往上数,到重装寄存器的值时会更新为0,继续一个周期,如此往复。。。PWM2模式则相反。总结来说,实际上就是改变占空比实现一些功能,如呼吸灯,控制电机(一把好好手啊)!
试试接收中断函数改成这样:void USART1_IRQHandler(void){ if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) // { if(usart1Len >= 100) // usart1Len = 0; usart1Buf[usart1Len++] = USART1->DR; USART_ClearFlag(USART1, USART_FLAG_RXNE); }}
这个问题得查看STM32芯片数据手册,默认复用与重定义的功能都对应哪些引脚。如果你使用的那个引脚默认就有定时器通道1,2,3,4的功能,就不用复用。如果在重定义那一项有定时器通道功能,而默认没有的话,那么就需要复用。