STM32L151用DMA+RAM+io控制脉冲个数输出的软件搞好了

2019-12-26 18:54发布

上次使用ROM存放高低数据,输出的波形不好。现在改成RAM存放。达到使用要求。
上图
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
mon51
1楼-- · 2019-12-27 18:47
jxyctwt 发表于 2016-4-11 11:48
有一个大波的原因是第一次发送其实TIM2没关掉一直在自由运行,第二次发送时等TIM2溢出.

一个简单的解决方案 ...

并不是TIM溢出。我的解决方案是,先输出0,再输出1,最后输出0 就完美解决了。用到72m ,现在可以输出5M。采用STM32L151L 降频到4M工作,可以完美输出200K.
jxyctwt
2楼-- · 2019-12-27 20:50
 精彩回答 2  元偷偷看……
jxyctwt
3楼-- · 2019-12-28 01:57
STM32F1  @72M     3.33M时的波形,我程序改成平时高电平了,因为后面是经过74HC573再驱动光耦的.
mon51
4楼-- · 2019-12-28 02:36
jxyctwt 发表于 2016-4-11 14:48
STM32F1  @72M     3.33M时的波形,我程序改成平时高电平了,因为后面是经过74HC573再驱动光耦的. ...

Start_SendOut(ENABLE);
这句里才打开TIM。此时dma已经打开,等待TIM触发。在DMA中断里,再关闭TIM。TIM中断是不打开的。
改变频率,重新赋值给TIM,就可以改变频率。
JJKwong
5楼-- · 2019-12-28 07:39
jxyctwt 发表于 2016-4-11 14:44
因为,我在MDK里面没进入过DMA中断,造成TIM2一直自由运行.
以前的的配置顺序,其实DMA已设置就开始发脉冲了, ...

jxyctwt,我用F1系列的,同样出现你说的没发进入过DMA中断,请问后面是怎么解决的,用没有demo参考一下。
kinsno
6楼-- · 2019-12-28 12:31
mon51 发表于 2016-4-11 13:18
并不是TIM溢出。我的解决方案是,先输出0,再输出1,最后输出0 就完美解决了。用到72m ,现在可以输出5M。 ...

可以发一个参考代码吗?
我也是需要工作在8M,输出1M的脉冲了。











一周热门 更多>