[产品应用] CW32L011 GTIM通用定时器配置

[复制链接]
201|6
晓伍 发表于 2025-9-9 08:40 | 显示全部楼层 |阅读模式
其实跟其他单片机差不多的

一、配置代码展示
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, &GTIM_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

AdaMaYun 发表于 2025-9-17 17:23 | 显示全部楼层
CW32L011 GTIM通用定时器配置
暖茶轻语 发表于 2025-9-25 21:06 | 显示全部楼层
代码结构清晰,注释也很到位,对于初学者来说是个很好的学习例子。如果需要进一步优化或者有其他功能需求,可以继续探讨。
中国龙芯CDX 发表于 2025-9-25 15:15 | 显示全部楼层
通用定时器配置很关键
OKAKAKO 发表于 2025-9-26 17:10 | 显示全部楼层
GTIM通用定时器配置
星辰大海不退缩 发表于 2025-9-27 13:53 | 显示全部楼层
CW32L011 GTIM通用定时器配置
小夏天的大西瓜 发表于 2025-9-28 15:41 | 显示全部楼层
CW32L011 GTIM通用定时器配置学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

4362

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部