其实跟其他单片机差不多的
一、配置代码展示
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分频后4K
GTIM_InitStruct.PulseMode = GTIM_PULSE_MODE_DIS;
GTIM_InitStruct.ReloadValue = 2000 -1; //4K的频率,时间是0.5s
GTIM_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间隔的点灯,学习从点灯开始。
————————————————
版权声明:本文为CSDN博主「嵌入式阿萌」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41613969/article/details/150219950
|
|