N32G43X
前言
本例程主要介绍国民技术N32G43X的定时器中断功能,例程实现1MS定时,用示波器测试得到500.001Hz,精度比较高。
提示:以下是本篇文章正文内容,下面案例可供参考
一、N32G43X定时器
1.定时器时钟配置
代码如下(示例):
void TIM3_RCC_Configuration(void)
{
RCC_ConfigPclk1(RCC_HCLK_DIV1);
RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_TIM3, ENABLE);
}
2.定时器中断配置
代码如下(示例):
void TIM3_NVIC_Configuration(void)
{
NVIC_InitType NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 4;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
3.中断分组
4.定时器初始化
代码如下(示例):
void TIM3_TIM_Init(u16 arr, u16 psc)
{
TIM_TimeBaseInitType TIM_TimeBaseStructure;
TIM3_RCC_Configuration();
TIM3_NVIC_Configuration();
/* Time base configuration */
TIM_TimeBaseStructure.Period = arr;
TIM_TimeBaseStructure.Prescaler = psc;
TIM_TimeBaseStructure.ClkDiv = 0;
TIM_TimeBaseStructure.CntMode = TIM_CNT_MODE_UP;
TIM_InitTimeBase(TIM3, &TIM_TimeBaseStructure);
TIM_ConfigInt(TIM3, TIM_INT_UPDATE, ENABLE);
TIM_Enable(TIM3, ENABLE);
}
5.中断函数
代码如下(示例):
void TIM3_IRQHandler(void)
{
if(TIM3->STS&0X0001)
{
LED_BL;
}
TIM3->STS &= ~(1<<0);//清除中断标志
}
该处使用的url网络请求的数据。
二、软件下载
44.N32G43X例程之-定时器中断
https://download.csdn.net/download/suqingxiao/73722651