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

stm32f030 DMA 被PWM给干掉了!!!

[复制链接]
飞儿 提问时间:2014-12-24 11:47 /
我把工程文件上传先。[url=]ADC_DMA.zip[/url]
1. ADC_DMA.zip (3.57 MB, 下载次数: 25)
收藏 评论14 发布时间:2014-12-24 11:47

举报

14个回答
奔跑小蜗牛 最优答案 回答时间:2014-12-25 10:58:03
你是VREF+ 和VDDA连在一起了吧?VDDA供电要在2.0V-3.6V,VDDA低于2V AD都不能正常工作,Vref要<=VDDA。如果Vref纹波太大,AD采样值也不会稳的,
小贾-370388 最优答案 回答时间:2014-12-26 13:46:08
本帖最后由 小贾-370388 于 2014-12-26 13:51 编辑

1、VDDA和VREF+的区别就是,VREF+只是提供电压基准参考的,从VREF+流入的电流基本可忽略不计,VREF+内部的电路对VREF+处的电压基本也没什么影响,VREF+的电压稳定度完全由电压基准的精度确定。
VDDA顾名思意,这是要给整个模拟部分供电的,从VDDA上流过的电流视内部模拟部分的电流消耗而定,VDDA内部的电路可能会对VDDA处的电压产生影响,但一般情况下,设计得当也基本可以忽略这个影响。
2、VDDA和VDD没有什么关系,当然,如果你想简化电源设计,把VDD和VDDA连在一起是可以的,此时相当于VDD给数字部分供电,模拟部分也使用VDD提供,如此而已,但VDD一般来说精度比较差,所以VDD和VDDA连在一起时还想着要多高的AD精度显然是你自己的问题3、在没有VREF+的时候,ST把VREF+内部引脚接到了VDDA上,那么此时保证AD精度的一个要求就是:VDDA必须稳定和准确,设计的基本原则就是选择一个比较好外部电压基准,并且这个电压基准应该有一定的带载能力,否则可能发生带载能力不足导致VDDA被拉低,从而导致VREF+也没拉低(没有外部引脚,但内部还是有VREF的,只是内部把VREF+接到了VDDA上),此时,AD的精度多数就保证不了拉,但这是你自己外围芯片选择不当4、在这里纠缠这个问题的人中,估计很多没有完全理解上面的1~3条5、VREF+连到VDDA根本和温漂没什么关系,精度完全取决于你外部电压基准输入到VDDA的电压精度。
飞儿 回答时间:2014-12-24 11:50:25
另外加上 我的PWM输出图
IMG_20141224_105850.jpg
晓枫VS枯叶 回答时间:2014-12-24 12:07:36
本帖最后由 晓枫VS枯叶 于 2014-12-24 12:12 编辑
  1. TIM_CtrlPWMOutputs(TIM14, ENABLE);//
复制代码
  1. void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState)
  2. {
  3.   /* Check the parameters */
  4.   assert_param(IS_TIM_LIST2_PERIPH(TIMx));
  5.   assert_param(IS_FUNCTIONAL_STATE(NewState));
  6.   if (NewState != DISABLE)
  7.   {
  8.     /* Enable the TIM Main Output */
  9.     TIMx->BDTR |= TIM_BDTR_MOE;
  10.   }
  11.   else
  12.   {
  13.     /* Disable the TIM Main Output */
  14.     TIMx->BDTR &= (uint16_t)(~((uint16_t)TIM_BDTR_MOE));
  15.   }  
  16. }
复制代码
  1. #define IS_TIM_LIST2_PERIPH(PERIPH) (((PERIPH) == TIM1) || \
  2.                                      ((PERIPH) == TIM15)|| \
  3.                                      ((PERIPH) == TIM16)|| \
  4.                                      ((PERIPH) == TIM17))
复制代码
高级定时器才有这个函数TIM_CtrlPWMOutputs,tim14是高级定时器么?
而且不是有一个设置脉宽的函数吗TIM_SetComparex,为什么你又写了一个函数!
飞儿 回答时间:2014-12-24 13:37:29
晓枫VS枯叶 发表于 2014-12-24 12:07
高级定时器才有这个函数TIM_CtrlPWMOutputs,tim14是高级定时器么?
而且不是有一个设置脉宽的 ...

就是因为原先是TIM16出现这种情况我才换的TIM14的,结果也是一样。 那个设置脉冲宽度的函数我没调用,还要修改的。
飞儿 回答时间:2014-12-24 15:10:39
彻底把我雷到了!!!!! 我把我拥有的TIM 都输出 48KPWM  居然发现TIM1输出48K的时候 不会影响ADC DMA   其它的TIM全部会影响  那STM32F030不至于这样吧????
飞儿 回答时间:2014-12-24 15:12:32
额 新发现 。。。可能是我调试方法有问题
飞儿 回答时间:2014-12-24 15:59:14
新发现 TIM17 在VREF 参考电压1.90V  (采样电压始终是1.25-1.35V)在PWM输出48K 时能稳定采样 ,其余通道除了TIM1 全失败
飞儿 回答时间:2014-12-25 08:30:08
鸟性 ,结贴了  VDDA 参考电压必须2.4V以上  否则各种错误
废鱼 回答时间:2014-12-25 10:46:07
楼主能力太强了。
不好意思,最近有些事情不能在论坛及时回复。
wamcncn 回答时间:2014-12-25 13:39:55
楼主发了好多求助帖啊,一有问题就求助,不利于学习,通过自己调试,处理问题会有一个深刻的认识
飞儿 回答时间:2014-12-25 13:45:51
wambob 发表于 2014-12-25 13:39
楼主发了好多求助帖啊,一有问题就求助,不利于学习,通过自己调试,处理问题会有一个深刻的认识 ...

你不要瞎说好不好,仔细看我贴 都是有经过好多次调试出来的结果 ,也没人给我解决,好不容易来了 都是来挑固件库的毛病  
飞儿 回答时间:2014-12-25 13:49:37
wambob 发表于 2014-12-25 13:39
楼主发了好多求助帖啊,一有问题就求助,不利于学习,通过自己调试,处理问题会有一个深刻的认识 ...

就说这个贴吧!如果我不发帖 我自己调  怎么会知道别人给我的看法,别人的思路也许一下就能提醒我找到答案,如果我自己一个人在那调,思路总是自己一个人 的 ,永远都不会进步
wamcncn 回答时间:2014-12-25 14:26:25
风铃草2 发表于 2014-12-25 13:49
就说这个贴吧!如果我不发帖 我自己调  怎么会知道别人给我的看法,别人的思路也许一下就能提醒我找到答 ...

说的也是啊,每个人的学习方法不同,也许这中方式适合你

所属标签

相似问题

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