首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

与STM32牵手的那些年(3.Systick)

与STM32牵手的那些年(3.Systick)

首先做个通知,晚上9点到11点有夜月狼与大家互动的群课,欢迎大家加入,现阶段内容:
1.PADS的原理图、PCB的绘制。
2.AD10的原理图、PCB的绘制。
群号:10821147
言归正传,发现该程序以前写过,只是那时没调试好,由于太晚了,就睡了,这几天忙着培训之类的事,忘了,今天又觉得应该继续STM32,那就Systick呗。
关于知识点,这里接不粘贴了。最后总结运用如下:
1.操作系统,这可能是当初正真的设计思想吧。
2.扩展闹钟、用于测量时间。
今天又仔细盘点了一下程序,发现自己犯了一个确实不应该的错误,写的函数居然没有在中断调用,呵呵

#include "Systick.h"

vu32 TimingDelay = 0;

void SystickInit(void)
{
if(SysTick_Config(SystemCoreClock / 100000))
{
while(1);
}
// 关闭滴答定时器
SysTick -> CTRL &= ~ SysTick_CTRL_ENABLE_Msk;

}

void TimingDelay_Decrement(void)
{
if(TimingDelay != 0x00)
{
TimingDelay--;
}

}

/*******************************************************************************
* Function Name  : DelayUS
* Description    : Inserts a DelayUS time.
* Input          : nCount: specifies the DelayUS time length.
* Output         : None
* Return         : None
*******************************************************************************/
void DelayUS(vu32 nCount)
{
TimingDelay = nCount;
// 使能滴答定时器
SysTick -> CTRL |= SysTick_CTRL_ENABLE_Msk;
while(TimingDelay != 0);
}

void SysTick_Handler(void)
{
TimingDelay_Decrement();
}

为题就是没有调用上述红色部分,笑自己无知,哈哈

返回列表