打印

急!请求香水城主帮忙解决TIM控制ADC采样的问题

[复制链接]
2794|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zuan520|  楼主 | 2011-6-24 15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADC_InitStructure.ADC_ExternalTrigConv =ADC_ExternalTrigConv_T1_CC1 ;//定时采样
TIM1_OCInitStructure.TIM1_OCMode = TIM1_OCMode_PWM1;
ADC配置成这样,TIM1配置成PWM模式,我想问的是TIM定时器触发AD采样是在什么情况下采样呢?是每捕获一次PWM信号,就触发一次呢,还是TIM1定时溢出触发一次?我在仿真的时候发现在TIM1溢出后,其实AD已经采样了好几百次了,所以不理解了
沙发
zuan520|  楼主 | 2011-6-27 09:05 | 只看该作者
又没有人回复,版主没在吗?

使用特权

评论回复
板凳
香水城| | 2011-6-27 14:11 | 只看该作者
在STM32固件库中有例子,LZ可以看看:
  Project\STM32F10x_StdPeriph_Examples\ADC\TIMTrigger_AutoInjection

使用特权

评论回复
地板
airwill| | 2011-6-28 22:49 | 只看该作者
ADC_InitStructure.ADC_ExternalTrigConv =ADC_ExternalTrigConv_T1_CC1 ;//定时采样
是每捕获一次PWM信号,就触发一次.
但是触发后怎么进行 ADC ,采样多少个通道, 看你的 ADC 怎么设置的了.

使用特权

评论回复
5
zuan520|  楼主 | 2011-6-29 15:02 | 只看该作者
谢谢大家的顶帖,谢谢香水城主,我AD是单通道,单次采样

使用特权

评论回复
6
zuan520|  楼主 | 2011-6-29 15:52 | 只看该作者
香水城主,我知道贴一堆代码下来别人很不想看,但是我还是得贴些,贴主要部位
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //这个输出比较是为T1_CC1提供触发条件
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;//这个是触发配置
  ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_13Cycles5);//这个是规则组的通道
  ADC_InjectedChannelConfig(ADC1, ADC_Channel_11, 1, ADC_SampleTime_71Cycles5);//这个是注入组的通道,
  ADC_ITConfig(ADC1, ADC_IT_JEOC, ENABLE);//使能了注入组DMA转换中断,然后在中断中读取注入组的转换结果,在中断中我读到值其实也是ADC转换后最后一个值,进了这个中断,我观察DMA的存储区,里面的数值全是规则组转换结果,而且,还是满的,按道理只有一个值才对的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

16

帖子

1

粉丝