你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32的systick时钟没法定时到1us?

[复制链接]
聿怀嘿嘿 提问时间:2015-1-10 21:31 /
阅读主题, 点击返回1楼
收藏 1 评论31 发布时间:2015-1-10 21:31
31个回答
聿怀嘿嘿 回答时间:2015-1-10 23:04:42
jinlinlong 发表于 2015-1-10 22:32
没试过,系统时钟不是很准确的

定时器定时总比软件定时精确把、您说的是内部晶振产生的时钟频率不精确把?
feiante 回答时间:2015-1-10 23:19:05
是不是计数溢出了?
xnmc2013 回答时间:2015-1-10 23:39:43
对F0的不太了解,正在学,不过要是F103的就没问题了
QianFan 回答时间:2015-1-11 09:40:11
肯定能延时到1us啊,要么使用定时器延时,要么使用软件延时,但是软件延时不是很精确。
定时器延时有两种方法,第一种直接设置成1us中断1次,也就是说systick config函数的参数是XMHz/1000000。但是这样频繁的打断CPU不是很合适。
另外在说一个方法,将定时器的时间间隔设计成为1ms的中断。这样你可以编写一个ms的延时。假设你的CPU是72M,那么也就是说SYSTICK->VAL从72M/1000-1开始,数到0结束。然后你再把这72M/1000等分成1000份,那么每一份又是1us了。这样就能使用定时器产生1us的时间间隔了。
duanks 回答时间:2015-1-11 09:51:58
你的系统一直在进中断,微妙级的延时用软件延时吧,想精确的话用逻辑分析仪慢慢调
聿怀嘿嘿 回答时间:2015-1-11 10:36:29
QianFan 发表于 2015-1-11 09:40
肯定能延时到1us啊,要么使用定时器延时,要么使用软件延时,但是软件延时不是很精确。
定时器延时有两种方 ...

谢谢!不过第二种方法具体要怎样实现呢?是设定好后不断查询?
聿怀嘿嘿 回答时间:2015-1-11 10:37:43
duanks 发表于 2015-1-11 09:51
你的系统一直在进中断,微妙级的延时用软件延时吧,想精确的话用逻辑分析仪慢慢调 ...

这是最后的办法、因为这个要根据不同的时钟频率来调整、我的目的是写一个通用的函数,这样方便一点
聿怀嘿嘿 回答时间:2015-1-11 10:38:28
feiante 发表于 2015-1-10 23:19
是不是计数溢出了?

应该不会把、10us能正常运行、1us应该不会溢出
tjhbwjk 回答时间:2015-1-11 10:44:44
觉得是代码问题,好好看看库开发
大秦正声 回答时间:2015-1-11 10:59:00
用的外部晶振?
延时6us呢?

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版