你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
运行中更改定时器定时时间值
[复制链接]
温柔的郎
提问时间:2020-2-28 16:14 /
各位大神,定时器相信大家都常用到,问下,如何在程序运行时,动态改变定时器的定时时间值。
比如,定时器定时时间到,控制的灯就点亮或者熄灭,a为定时器的定时时间值,如果在程序运行过程中,改变a的赋值,这个定时器的定时时间也会自动跟着延长或者减小,
这个定时器赋值,如何实现啊???
请有知道的大神指点指点
赞
0
收藏
0
评论
5
分享
发布时间:2020-2-28 16:14
举报
请先
登录
后回复
5个回答
wenyangzeng
回答时间:2020-2-28 21:24:41
a0a.1 32b0c
设置TIMx的控制寄存器TIMx_CR1的D7位(APRE)为1,则改变自动重加载寄存器(TIMx_ARR)的值,即可更新定时器新的定时值。
赞
0
评论
回复
支持
反对
STM1024
回答时间:2020-2-29 16:51:27
a0a.1 32b0c
你初始化的时候不是有给定时器配置周期吗?那个怎么搞,这里就怎么搞,从稳妥角度考虑,建议在修改前,先把定时器关闭,把相应的中断也给关闭了,配置完了再打开。
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
李康1202
回答时间:2020-2-29 19:20:27
a0a.1 32b0c
按道理说直接改寄存器就可以
赞
0
评论
回复
支持
反对
aiherong
回答时间:2020-3-1 05:06:56
a0a.1 32b0c
int a =初始值; a +=增量; 或 a-=增量; 然后将下一行代码加入你想要的位置:
*(volatile unsigned int *)(TIMx_BASE +0x28)=a ; 其中TIMx具体到某一定时器
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
butterflyspring
回答时间:2020-3-3 11:32:31
a0a.1 32b0c
二楼的建议,用定时器预装载功能吧,否则在修改定时器寄存器时恰巧计数值到了就产生冲突。当然预装载是一种安全模式,但是产生作用是下一个周期。所以最终取决你的定时时间长短。如果很长的话,直接用软件计数就好了。
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
评分
查看全部评分
*(volatile unsigned int *)(TIMx_BASE +0x28)=a ; 其中TIMx具体到某一定时器
评分
查看全部评分
评分
查看全部评分