打印
[其他ST产品]

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

[复制链接]
楼主: elephant00
手机看帖
扫描二维码
随时随地手机跟帖
41
heweibig| | 2023-4-1 21:32 | 只看该作者 回帖奖励 |倒序浏览
嗯,不然出什么问题是正常的,不出问题是意外的;

使用特权

评论回复
42
gongche| | 2023-4-1 21:34 | 只看该作者
优化级别调成 level 0试试 可以有限规避楼上的情况

使用特权

评论回复
43
chenho| | 2023-4-1 21:35 | 只看该作者
优化级别调成 level 0试试 可以有限规避楼上的情况

使用特权

评论回复
44
wuhany| | 2023-4-1 21:37 | 只看该作者
void Delay(u32 nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0)
{
   __WFI();
  
}
}

volatile uint32_t TimingDelay =0;

用上述两招试试

使用特权

评论回复
45
jiahy| | 2023-4-1 21:38 | 只看该作者
写法有问题,应该在delay延时函数中赋初始值后,在启动嘀嗒时钟。

使用特权

评论回复
46
lizye| | 2023-4-1 21:40 | 只看该作者
大哥,作用域详细了解一下,c语言基本功不够扎实啊,

使用特权

评论回复
47
zhanglli| | 2023-4-1 21:41 | 只看该作者
加__nop,在此设断点

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

使用特权

评论回复
48
yufe| | 2023-4-1 21:44 | 只看该作者
另外delay不要在中断中调用

使用特权

评论回复
49
zhanglli| | 2023-4-1 21:46 | 只看该作者
截图看怎么看出TimingDelay等于0了但还在执行循环

使用特权

评论回复
50
shimx| | 2023-4-1 21:47 | 只看该作者
你在Delay()里的while循环里添加打印再看下

使用特权

评论回复
51
zhanglli| | 2023-4-1 21:49 | 只看该作者
怎么判断退不出来?

使用特权

评论回复
52
hanwe| | 2023-4-1 21:51 | 只看该作者
Systick定时器,是一个简单的定时器

使用特权

评论回复
53
chenho| | 2023-4-1 21:52 | 只看该作者
怎么看出来程序不会退出的啊?

使用特权

评论回复
54
songqian17| | 2023-4-1 21:54 | 只看该作者
STM32怎么用库函数使用滴答定时器?

使用特权

评论回复
55
jiaxw| | 2023-4-1 21:55 | 只看该作者
Systick允许的最长和最短定时是多少

使用特权

评论回复
56
zhanglli| | 2023-4-1 21:56 | 只看该作者

定时器和systick哪个好               

使用特权

评论回复
57
jiaxw| | 2023-4-1 21:57 | 只看该作者
ST的CM3、CM4、CM7内核芯片,都有Systick定时器

使用特权

评论回复
58
hanwe| | 2023-4-1 21:58 | 只看该作者
用内部晶振 设置Systick延时怎么设置

使用特权

评论回复
59
zwll| | 2023-4-2 10:32 | 只看该作者
怎么开启systick定时器               

使用特权

评论回复
60
zhanglli| | 2023-4-2 10:34 | 只看该作者
STM32怎么用库函数使用滴答定时器?

使用特权

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

本版积分规则