临夏州住房和城乡建设厅网站,中企动力提供网站建设,企业展厅建设计划书,怎么通过局域网建设网站之前只弄过单路的#xff0c;这次想用4路PWM#xff0c;CUBE里面一顿配置#xff0c;生成#xff0c;然后套用之前的代码#xff1a;
HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_1);
这算是开启第一路了#xff0c;心想后面无非就复制几条#xff0c;改下通道的事了这次想用4路PWMCUBE里面一顿配置生成然后套用之前的代码
HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_1);
这算是开启第一路了心想后面无非就复制几条改下通道的事了无意中点了下TIM_CHANNEL_1进头文件看看 /** defgroup TIM_Channel TIM Channel* {*/
#define TIM_CHANNEL_1 0x00000000U /*! Capture/compare channel 1 identifier */
#define TIM_CHANNEL_2 0x00000004U /*! Capture/compare channel 2 identifier */
#define TIM_CHANNEL_3 0x00000008U /*! Capture/compare channel 3 identifier */
#define TIM_CHANNEL_4 0x0000000CU /*! Capture/compare channel 4 identifier */
#define TIM_CHANNEL_ALL 0x0000003CU /*! Global Capture/compare channel identifier */
/*** }*/
看到TIM_CHANNEL_ALL时眼前一亮连续开启1、2、3、4怎么都显得不够优雅于是把代码改成了
HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_ALL);
这一改看似天衣无缝却没有想到灾难性的一下午就降临了管脚没有输出改管脚输出的上下拉模式改时钟改PWM设置里的各种setting后来一度怀疑这个芯片的TIM3是不是有问题
无奈之下去掉所有PWM针对某一路管脚改用GPIO切换状态发现正常换了一个定时器13。 HAL_TIM_PWM_Start(htim13, TIM_CHANNEL_1);
正常。
HAL_TIM_PWM_Start(htim13, TIM_CHANNEL_ALL); 没有。
这时候心里一阵阴霾。
4路PWM全都配置上然后 HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_2);HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_3);HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_4);
赶紧用示波器测量……
我只能说ST你把TIM_CHANNEL_ALL放那下面是想要坑死谁是个正常人都会觉得那个是用来配置全部通道的吧唉。