脚本宝典收集整理的这篇文章主要介绍了102-CH32V307(WCH单片机)学习开发-系统滴答定时器,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnCH32V307VCT6" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
#include "debug.h" #include "ch32v30x.h" volatile uint16_t SysTickCnt=0; void SysTick_inIT(void) { /*配置中断优先级*/ NVIC_InitTyPEDef NVIC_InitStructure = {0}; NVIC_InitStructure.NVIC_IRQChannel = SysTicK_IRQn; NVIC_InitStructure.NVIC_IRQChannelPReemptionPriority = 0;//抢占式优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//响应式优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能 NVIC_Init(&NVIC_InitStructure); /*配置定时器*/ SysTick->CTLR= 0; SysTick->SR = 0; SysTick->CNT = 0; SysTick->CMP = SystemCoreclock/1000;//后面的1000代表1000HZ(那就是1ms进一次中断) SysTick->CTLR= 0xf; } __attribute__((interrupt("WCH-interrupt-fast"))) void SysTick_Handler(void) { SysTick->SR=0;//清除中断 SysTickCnt++; } int main(void) { NVIC_PriorityGroupconfig(NVIC_PriorityGroup_2);//设置优先级分组为2 USART_Printf_Init(115200); SysTick_init(); while(1) { if (SysTickCnt>=1000) { SysTickCnt=0; printf("1111111111rn"); } } }
以上是脚本宝典为你收集整理的102-CH32V307(WCH单片机)学习开发-系统滴答定时器全部内容,希望文章能够帮你解决102-CH32V307(WCH单片机)学习开发-系统滴答定时器所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。