基本計時器主要由下面三個暫存器組成
計數器暫存器(TIMx_CNT)
預分頻器暫存器(TIMx_PSC)
自動重載暫存器(TIMx_ARR)
所以,我們只要設定好上面的暫存器就可以計時了
PWM
所以我們使用TIM產生之PWM時,只要啟動計時器,並設定好需要的ARR(Auto Reload Register )和CCR(Capture/Compare Register)
就可以產生需要的PWM訊號了。
HAL_TIM_PWM_Start(&htim21,TIM_CHANNEL_2); //啟動TIM21 channel2之PWM
TIM21->ARR=XXXX //重載暫存器的值,該是PWM的階數
TIM21->CCRx=XXXX //duty=CCR/ARR,以此來設定CCR
HAL_TIM_PWM_Stop(&htim21,TIM_CHANNEL_2); //停此TIM21 channel2之PWM
若要切換模式1和模式2,可操作TIMx_CCMR1和TIMx_CCER
例如:
TIM21->CCMR1=7<<4;
TIM21->CCER=1;
可由模式1切換至模式2