ADC 触发设置

[复制链接]
3384|6
手机看帖
扫描二维码
随时随地手机跟帖
LingTian|  楼主 | 2012-10-6 10:06 | 显示全部楼层 |阅读模式
STM32,ADC用为inject的ADC1和ADC2同步,用TIM1的CC4触发,怎样设置?
LingTian|  楼主 | 2012-10-6 10:07 | 显示全部楼层
TIM_TimeBaseStructure.TIM_Period            = MAX_CYCLE - 1;                     // 自动重装载寄存器的值
  TIM_TimeBaseStructure.TIM_Prescaler         = 1;                                 // 时钟预分频数
  TIM_TimeBaseStructure.TIM_ClockDivision     = TIM_CKD_DIV1;                      // 采样分频
  //TIM_TimeBaseStructure.TIM_CounterMode       = TIM_CounterMode_Up;              //向上计数
  TIM_TimeBaseStructure.TIM_CounterMode       = TIM_CounterMode_CenterAligned1;    // 向上计数
  TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;                                 //重复寄存器,用于自动更新pwm占空比
  TIM_TimeBaseInit( TIM1, &TIM_TimeBaseStructure );

   TIM_OC4Init( TIM1, &TIM_OCInitStructure );                           //按照指定参数初始化
  //TIM_SelectOutputTrigger( TIM1, TIM_TRGOSource_OC4Ref );
  TIM_SetCompare4( TIM1, MAX_CYCLE / 2 );
  TIM_GenerateEvent( TIM1, TIM_EventSource_CC4 );

使用特权

评论回复
LingTian|  楼主 | 2012-10-6 10:08 | 显示全部楼层
ADC_InjectedChannelConfig( ADC1, ADC_Channel_2, 1, ADC_SampleTime_1Cycles5 );  // 9 as for curent A
  ADC_InjectedChannelConfig( ADC1, ADC_Channel_2, 2, ADC_SampleTime_1Cycles5 );
  ADC_InjectedChannelConfig( ADC1, ADC_Channel_2, 3, ADC_SampleTime_1Cycles5 );
  ADC_InjectedChannelConfig( ADC1, ADC_Channel_2, 4, ADC_SampleTime_1Cycles5 );

  ADC_InjectedChannelConfig( ADC2, ADC_Channel_1, 1, ADC_SampleTime_1Cycles5 );  // 8 as for curent B
  ADC_InjectedChannelConfig( ADC2, ADC_Channel_1, 2, ADC_SampleTime_1Cycles5 );
  ADC_InjectedChannelConfig( ADC2, ADC_Channel_1, 3, ADC_SampleTime_1Cycles5 );
  ADC_InjectedChannelConfig( ADC2, ADC_Channel_1, 4, ADC_SampleTime_1Cycles5 );
  //ADC_ExternalTrigInjectedConvConfig( ADC1, ADC_ExternalTrigInjecConv_T1_CC4 );
  //ADC_ExternalTrigInjectedConvConfig( ADC2, ADC_ExternalTrigInjecConv_T1_CC4 );

  //ADC_SetInjectedOffset( ADC1, ADC_InjectedChannel_1, 0xff );
  //ADC_SetInjectedOffset( ADC2, ADC_InjectedChannel_1, 0xff );
  ADC_InjectedSequencerLengthConfig( ADC1, 1 );
  ADC_InjectedSequencerLengthConfig( ADC2, 1 );
  ADC_ExternalTrigInjectedConvConfig( ADC1, ADC_ExternalTrigInjecConv_T1_CC4 );
  ADC_ExternalTrigInjectedConvConfig( ADC2, ADC_ExternalTrigInjecConv_T1_CC4 );
  ADC_ExternalTrigInjectedConvCmd( ADC1, ENABLE );
  //ADC_AutoInjectedConvCmd( ADC1, ENABLE );
  //ADC_AutoInjectedConvCmd( ADC2, ENABLE );
  ADC_ITConfig( ADC1, ADC_IT_JEOC, ENABLE );

使用特权

评论回复
LingTian|  楼主 | 2012-10-6 10:08 | 显示全部楼层
NVIC_InitStructure.NVIC_IRQChannel = ADC1_2_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 7;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init( &NVIC_InitStructure );

使用特权

评论回复
LingTian|  楼主 | 2012-10-6 10:09 | 显示全部楼层
不能正常工作。问题出在哪?

使用特权

评论回复
LingTian|  楼主 | 2012-10-6 10:22 | 显示全部楼层
ADC_ExternalTrigInjecConv_T1_CC4, 这样的事件如何产生?

使用特权

评论回复
huangfeng33| | 2012-10-15 17:55 | 显示全部楼层
楼主很强大,下来学习一下,感谢分享

使用特权

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

本版积分规则

个人签名:有苏州的朋友吗?请加我。 18912798761@189.cn

15

主题

243

帖子

0

粉丝