ArterySW 发表于 2021-4-22 10:21

使用CM4内核自带systick产生中断demo

使用CM4内核自带systick产生中断demo
本demo使用CM4内核自带的systick定时器产生ms级中断,示例代码如下:
void SysTick_Init()
{
/*Config Systick*/
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);

/* SystemCoreClock / (1000U) : ms tick */
SysTick->LOAD= (uint32_t)((SystemCoreClock / (1000U)) - 1UL);
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL);
SysTick->VAL   = 0UL;
SysTick->CTRL= SysTick_CTRL_CLKSOURCE_Msk |
                   SysTick_CTRL_TICKINT_Msk   |
                   SysTick_CTRL_ENABLE_Msk;
}
通过以上配置可使systick产生1ms中断,中断处理函数入口为:
void SysTick_Handler(void)
{
}


将以上代码复制到AT32 BSP内任意工程中即可使用!


xcvista 发表于 2021-4-22 11:39

造轮子?CMSIS 里面我记得有一个函数就是这个功能的?

muyichuan2012 发表于 2021-4-22 12:17

是的但是有个客户还是找不到,写在这里一劳永逸吧。

隋士龙 发表于 2022-4-13 07:22

SysTick   使用资料数据手册上没有。如何配置,如何使能,控制寄存器都有哪些?

muyichuan2012 发表于 2022-4-13 09:08

bsp里也有systick的现成案例,如下
AT32Fxxx_Firmware_Library_V2.x.x\project\at_start_fxxx\examples\cortex_m4\systick_interrupt
页: [1]
查看完整版本: 使用CM4内核自带systick产生中断demo