wwwicq 发表于 2022-10-13 11:55:49

国民技术N32G031使用经验3_定时器

国民技术N32G031使用经验3_定时器:
    国民技术ARM系列芯片性价比高,使用方便,唯独官方例子太少,因此在这贴出常用部分代码,供初用者参考改进:

uint16_t PrescalerValue = 0;
TIM_TimeBaseInitTypeTIM_TimeBaseStructure;
extern uint8_t clock_m;

void TIM_INT_Config(void)
{
NVIC_InitType NVIC_InitStructure;

    //RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_TIM3 | RCC_APB1_PERIPH_TIM6, ENABLE);
    //RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_TIM1 | RCC_APB2_PERIPH_TIM8, ENABLE);

/* TIM3 clock enable */
    //RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_TIM3 , ENABLE);
   
    TIM_DeInit(TIM3);
   
/*TIM3 中断嵌套设计*/
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
/* 计算预分频值 */
PrescalerValue = clock_m-1;
/* Time 定时器基础设置 */
TIM_TimeBaseStructure.Period = 10000; //10ms 1us计1次
TIM_TimeBaseStructure.Prescaler = 0;
TIM_TimeBaseStructure.ClkDiv = 0;
TIM_TimeBaseStructure.CntMode = TIM_CNT_MODE_UP;
TIM_InitTimeBase(TIM3, &TIM_TimeBaseStructure);
/* 预分频器配置 */
TIM_ConfigPrescaler(TIM3, PrescalerValue, TIM_PSC_RELOAD_MODE_IMMEDIATE);
/* TIM 中断使能 */
TIM_ConfigInt(TIM3, TIM_INT_UPDATE, ENABLE);
/* TIM 使能 */
TIM_Enable(TIM3, ENABLE);
}

cctv1 发表于 2022-10-13 16:26:23

tian_000 发表于 2022-10-13 16:30:45

mj8abcd 发表于 2022-10-13 17:00:48

luchonghui74 发表于 2022-10-13 20:11:13

谢谢你的分享!

罗塘阮经天 发表于 2022-10-13 22:24:47

闪耀的空白 发表于 2022-10-14 08:22:27

多谢分享

zhang_tao_08 发表于 2022-10-14 08:23:04

13131 发表于 2022-10-14 09:05:09

maogege-chen 发表于 2022-10-14 09:12:53

页: [1] 2
查看完整版本: 国民技术N32G031使用经验3_定时器