N32G031固件库开发(三)基本TIM6定时器中断

基本定时器 (TIM6)
基本定时器简介
基本定时器 TIM6 包含一个 16 位自动装载计数器。
基本定时器主要特性
 16位自动重载向上计数计数器。
 16位可编程预分频器。(分频系数可配置为 1到 65536之间的任意值)
 产生中断/DMA 的事件如下:
 更新事件

定时器中断函数配置

void TIM6_Int_Init(u32 arr,u32 psc)
{
		TIM_TimeBaseInitType TIM_TimeBaseStructure;
		NVIC_InitType NVIC_InitStructure;

		/* PCLK1 = HCLK */
		RCC_ConfigPclk1(RCC_HCLK_DIV1);

		/* TIM6 clock enable */
		RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_TIM6, ENABLE);

		/* Time base configuration */
		TIM_InitTimBaseStruct(&TIM_TimeBaseStructure);
		TIM_TimeBaseStructure.Period    = arr;
		TIM_TimeBaseStructure.Prescaler = psc;
		TIM_TimeBaseStructure.ClkDiv    = 0;
		TIM_TimeBaseStructure.CntMode   = TIM_CNT_MODE_UP;
		TIM_InitTimeBase(TIM6, &TIM_TimeBaseStructure);

		/* Enable the TIM2 global Interrupt */
		NVIC_InitStructure.NVIC_IRQChannel                   = LPTIM_TIM6_IRQn;
		NVIC_InitStructure.NVIC_IRQChannelPriority           = 1;
		NVIC_InitStructure.NVIC_IRQChannelCmd                = ENABLE;
		NVIC_Init(&NVIC_InitStructure);

    /* Prescaler configuration */
    TIM_ConfigPrescaler(TIM6, psc, TIM_PSC_RELOAD_MODE_IMMEDIATE);
		
		/* TIM6 enable update irq */
		TIM_ConfigInt(TIM6, TIM_INT_UPDATE, ENABLE);

		/* TIM6 enable counter */
		TIM_Enable(TIM6, ENABLE);

}
void LPTIM_TIM6_IRQHandler(void)
{
    if (TIM_GetIntStatus(TIM6, TIM_INT_UPDATE) != RESET)
    {
			
		printf("fengji:%d \r\n");

        TIM_ClrIntPendingBit(TIM6, TIM_INT_UPDATE);

    }
}
int main(void)
{
	TIM6_Int_Init(1000-1,4800-1);//100ms中断一次
	uart_init(9600);

    while (1)
    {          

    }
}

程序编译后下载用串口助手查看

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂造机人~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值