OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1943|回复: 3

stm32f1rct6有关延时函数的一些问题

[复制链接]

1

主题

4

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-7-2
在线时间
5 小时
发表于 2019-7-6 11:54:36 | 显示全部楼层 |阅读模式
5金钱
萌新刚开始学没多久的32 最近写东西老是出bug所以我就想了解下原理  萌新没有金币悬赏 就这么几个接下来是问题 第一个问题 :
      :【ucos 运行需要一个系统时钟节拍(类似 “心跳”),
而这个节拍是固定的(由 OS_TICKS_PER_SEC 宏定义设置),比如要求 5ms 一次(即可设置:
OS_TICKS_PER_SEC=200),在STM32 上面,一般是由SysTick 来提供这个节拍,也就是SysTick
要设置为 5ms 中断一次,为 ucos 提供时钟节拍,而且这个时钟一般是不能被打断的。】
这是寄存器版本手册里的一段话 下面是毫秒级延时函数
===============================================================================
//延时nus
//nus 为要延时的 us 数.
void delay_us(u32 nus)
{
u32 temp;

72
SysTick->LOAD=nus*fac_us; //时间加载
SysTick->VAL=0x00; //清空计数器
SysTick->CTRL=0x01 ; //开始倒数
do {
     temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16)));//等待时间到达
      SysTick->CTRL=0x00; //关闭计数器
      SysTick->VAL =0X00; //清空计数器
}

================================================================================
最后两行关闭了这个时钟 那最前面那段话里的系统节拍谁来提供呢?
第二个问题就比较宽泛了:我写程序的时候遇到过延时函数无法使用的情况,什么时候会遇到这种情况呢,还有我定时器时1间500没有用但是49就有作用是什么情况呢?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-7-6 12:09:45 | 显示全部楼层
跑系统的就不应该用这样的Delay函数, 系统不是都自带Delay阻塞函数的么?
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-7-2
在线时间
5 小时
 楼主| 发表于 2019-7-6 12:56:56 | 显示全部楼层
edmund1234 发表于 2019-7-6 12:09
跑系统的就不应该用这样的Delay函数, 系统不是都自带Delay阻塞函数的么?

等等 跑系统是啥意思 我最开始看到ucos也有疑惑 但是我查了资料之后还是不是很明白 手册上也没有说 我写的就是想倒立摆这种程序 这种程序是不需要用到系统的吗
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4519
金钱
4519
注册时间
2018-5-11
在线时间
946 小时
发表于 2019-7-7 10:33:17 | 显示全部楼层
yhb2333 发表于 2019-7-6 12:56
等等 跑系统是啥意思 我最开始看到ucos也有疑惑 但是我查了资料之后还是不是很明白 手册上也没有说 我写 ...

跑系统指的是像UCOS这种嵌入式实时操作系统,
绝大多数简单的MCU应用都是不用操作系统(操作系统有较大的资源开销)的,
直接裸机编程就行了。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 13:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表