CW32L011 GTIM通用定时器配置
其实跟其他单片机差不多的
一、配置代码展示
main.c
* Local function prototypes ('static')******************************************************************************/
void SYSCTRL_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);int32_t main(void)
{GTIM_InitTypeDef GTIM_InitStruct = {0};/* System Clocks Configuration */SYSCTRL_Configuration();/* GPIO Configuration */GPIO_Configuration();/* NVIC Configuration */NVIC_Configuration();GTIM_InitStruct.AlignMode = GTIM_ALIGN_MODE_EDGE;GTIM_InitStruct.ARRBuffState = GTIM_ARR_BUFF_EN;GTIM_InitStruct.Direction = GTIM_DIRECTION_UP;GTIM_InitStruct.EventOption = GTIM_EVENT_NORMAL;GTIM_InitStruct.Prescaler = 1000 - 1; //4M分频后4KGTIM_InitStruct.PulseMode = GTIM_PULSE_MODE_DIS;GTIM_InitStruct.ReloadValue = 2000 -1; //4K的频率,时间是0.5sGTIM_InitStruct.UpdateOption = GTIM_UPDATE_EN;GTIM_TimeBaseInit(CW_GTIM1, >IM_InitStruct);GTIM_Cmd(CW_GTIM1, ENABLE);GTIM_ITConfig(CW_GTIM1, GTIM_IT_UPDATA, ENABLE);while (1){}
}void SYSCTRL_Configuration(void)
{__SYSCTRL_GTIM1_CLK_ENABLE();__SYSCTRL_GPIOB_CLK_ENABLE();__SYSCTRL_GPIOA_CLK_ENABLE();__SYSCTRL_FLASH_CLK_ENABLE();SYSCTRL_HSI_Enable(HSIOSC_TO_HSI4MHZ);
}void GPIO_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStruct = {0};GPIO_InitStruct.IT = GPIO_IT_NONE;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pins = GPIO_PIN_12;GPIO_Init(CW_GPIOA, &GPIO_InitStruct);/* PA12 输出 */PA12_SETLOW();}void NVIC_Configuration(void)
{__disable_irq();NVIC_EnableIRQ(GTIM1_IRQn);__enable_irq();
}
interrupts_cw32l011.c
/*** @brief This funcation handles GTIM1*/
void GTIM1_IRQHandler(void)
{/* USER CODE BEGIN */if (GTIM_GetITStatus(CW_GTIM1, GTIM_IT_UPDATA)){GTIM_ClearITPendingBit(CW_GTIM1, GTIM_IT_UPDATA);PA12_TOG();}/* USER CODE END */
}
就实现了0.5间隔的点灯,学习从点灯开始。