你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
评分
查看全部评分
*(volatile unsigned int *)(TIMx_BASE +0x28)=a ; 其中TIMx具体到某一定时器
评分
查看全部评分
评分
查看全部评分