OpenEdv-开源电子网

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

请教一下各位大神,关于stm32延时的问题

[复制链接]

28

主题

86

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2015-5-19
在线时间
64 小时
发表于 2015-5-19 20:16:44 | 显示全部楼层 |阅读模式
5金钱
我想做一个ws2811环形led的驱动,要求输入,4us的高1us的低表示1,输入4us的低1us的高表示0,我用delay_us(4)和delay_us(1)想弄出一个波来,但是却无法实现,在模拟波形的时候delay_us(4)差不多有5us,delay_us(1)有差不多2us,不能实现精确延时,请问这是什么情况

最佳答案

查看完整内容[请看2#楼]

delay_us,越小越不准,尤其在1us的时候,因为函数调用,指令执行都是需要时间的。 建议用PWM。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-19 20:16:45 | 显示全部楼层
delay_us,越小越不准,尤其在1us的时候,因为函数调用,指令执行都是需要时间的。
建议用PWM。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-5-19 22:32:23 | 显示全部楼层
用定时器做吧   精度高不少
回复

使用道具 举报

28

主题

86

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2015-5-19
在线时间
64 小时
 楼主| 发表于 2015-5-20 12:02:56 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
我在用pwm做的时候出现一个问题,我把分频设为180(也就是2.5us),我用setcompare来设置占空比分别为144和36(2us和0.5us),产生的波形确实精确了,但是并不能立刻实现改变。。。。比如我想执行
while(1)
{TIM_SetCompare2(TIM3,144);
  TIM_SetCompare2(TIM3,36;}
想让pwm输出高低交错的波形,但是pwm会连续输出几个高,再连续输出几个低,而且连续输出的高或者低的数目完全是随机的,不能立刻实现波形改变
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-20 23:31:21 | 显示全部楼层
回复【4楼】18323054303:
---------------------------------
 禁止自动重装载功能试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 05:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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