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

2020-01-27 11:18发布

首先做个通知,晚上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();
}

为题就是没有调用上述红 {MOD}部分,笑自己无知,哈哈
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。