打印
[其他ST产品]

请教关于SysTick—系统定时器使用问题

[复制链接]
4734|139
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elephant00|  楼主 | 2023-2-20 10:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我部分程序片段:


Delay(5);

void Delay(u32 nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0);  // 仿真时看到TimingDelay等于0了,始终不能退出while。
}

void SysTick_Handler(void)  // 仿真时看到TimingDelay第一次进入是5,最终是0。
{
if(TimingDelay != 0) TimingDelay--;
}

上述问题是什么原因,怎么解决?谢谢!

使用特权

评论回复
沙发
sjnh| | 2023-2-20 12:23 | 只看该作者
中断和其它地方都用的变量,一定是volatile的,不然出什么问题是正常的,不出问题是意外的;

使用特权

评论回复
板凳
圣骑士by| | 2023-2-20 17:06 | 只看该作者
优化级别调成 level 0试试 可以有限规避楼上的情况

使用特权

评论回复
地板
圣骑士by| | 2023-2-20 17:06 | 只看该作者
优化级别调成 level 0试试 可以有限规避楼上的情况

使用特权

评论回复
5
xch| | 2023-2-20 17:31 | 只看该作者
void Delay(u32 nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0)
{
   __WFI();
  
}
}

volatile uint32_t TimingDelay =0;

用上述两招试试

使用特权

评论回复
6
guijial511| | 2023-2-20 18:55 | 只看该作者
写法有问题,应该在delay延时函数中赋初始值后,在启动嘀嗒时钟。

使用特权

评论回复
7
zchong| | 2023-2-21 07:31 | 只看该作者
大哥,作用域详细了解一下,c语言基本功不够扎实啊,

使用特权

评论回复
8
ayb_ice| | 2023-2-21 08:32 | 只看该作者
加__nop,在此设断点

void Delay(u32 nTime)
{
        TimingDelay = nTime;
        while(TimingDelay != 0)  // 仿真时看到TimingDelay等于0了,始终不能退出while。
        {
                __nop();
        }
        __nop();
}

使用特权

评论回复
9
ayb_ice| | 2023-2-21 08:34 | 只看该作者
另外delay不要在中断中调用

使用特权

评论回复
10
两只袜子| | 2023-2-21 10:00 | 只看该作者
截图看怎么看出TimingDelay等于0了但还在执行循环

使用特权

评论回复
11
jcky001| | 2023-2-22 10:00 | 只看该作者
你在Delay()里的while循环里添加打印再看下

使用特权

评论回复
12
cr315| | 2023-2-23 10:00 | 只看该作者
怎么判断退不出来?

使用特权

评论回复
13
uytyu| | 2023-3-3 21:09 | 只看该作者
Systick定时器,是一个简单的定时器

使用特权

评论回复
14
Henryko| | 2023-3-3 22:42 | 只看该作者
怎么看出来程序不会退出的啊?

使用特权

评论回复
15
ingramward| | 2023-3-4 13:02 | 只看该作者
STM32怎么用库函数使用滴答定时器?

使用特权

评论回复
16
youtome| | 2023-3-4 20:56 | 只看该作者
Systick允许的最长和最短定时是多少

使用特权

评论回复
17
mikewalpole| | 2023-3-4 21:33 | 只看该作者
定时器和systick哪个好               

使用特权

评论回复
18
averyleigh| | 2023-3-4 22:05 | 只看该作者
ST的CM3、CM4、CM7内核芯片,都有Systick定时器

使用特权

评论回复
19
ingramward| | 2023-3-4 22:45 | 只看该作者
用内部晶振 设置Systick延时怎么设置

使用特权

评论回复
20
hearstnorman323| | 2023-3-5 10:49 | 只看该作者
怎么开启systick定时器               

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

966

主题

2956

帖子

7

粉丝