中级会员
 
- 积分
- 357
- 金钱
- 357
- 注册时间
- 2014-6-16
- 在线时间
- 12 小时
|
5金钱
我想在规则通道转换时,外部触发插入注入通道,但结果注入通道没现象出来,求高手指点一二。
void ADConvert_Init(void)
{
ADC_InitTypeDef ADC_InitStruct;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_GPIOA,ENABLE);
RCC_ADCCLKConfig(RCC_PCLK2_Div6); //?è??ADC·????ò×?6 72M/6=12,ADC×??ó?±??????????14M
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_AIN;
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//ADC Init
ADC_DeInit(ADC1);
ADC_InitStruct.ADC_ContinuousConvMode =DISABLE;
ADC_InitStruct.ADC_DataAlign =ADC_DataAlign_Right;
ADC_InitStruct.ADC_ExternalTrigConv =ADC_ExternalTrigConv_None;
ADC_InitStruct.ADC_Mode =ADC_Mode_Independent;
ADC_InitStruct.ADC_NbrOfChannel=1;
ADC_InitStruct.ADC_ScanConvMode =DISABLE;
ADC_Init(ADC1, &ADC_InitStruct);
// ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_Channel_2); //??ADC1_channal_1?è???????·
// ADC_AnalogWatchdogThresholdsConfig(ADC1,2482,1861);
// ADC_AnalogWatchdogCmd(ADC1,ADC_AnalogWatchdog_SingleRegEnable);
// ADC_ITConfig(ADC1, ADC_IT_AWD, ENABLE);
ADCInjected_Init();
ADC_ITConfig (ADC1,ADC_IT_JEOC,ENABLE);
ADC_Cmd(ADC1,ENABLE);
ADC_ResetCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1)); //??????????×??á??
ADC_StartCalibration(ADC1); //????AD??×?
while(ADC_GetCalibrationStatus(ADC1)); //??????×??á??
}
void ADCInjected_Init(void)
{
ADC_InjectedSequencerLengthConfig(ADC1,1);
ADC_InjectedChannelConfig(ADC1,ADC_Channel_4,1,ADC_SampleTime_7Cycles5);
ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_T3_CC4);
ADC_ExternalTrigInjectedConvCmd(ADC1, ENABLE);
ADC_ExternalTrigConvCmd(ADC1,ENABLE);
}
uint16_t ADCInj_Val;
void ADC1_2_IRQHandler(void)
{
if(ADC_GetFlagStatus(ADC1,ADC_FLAG_JEOC)!=RESET)
{
ADCInj_Val=ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_4);
LED1=0;
ADC_ClearFlag(ADC1, ADC_FLAG_JEOC);
LCD_ShowxNum(80,60,ADCInj_Val,4,16,0x80);
}
ADC_ClearITPendingBit(ADC1, ADC_FLAG_JEOC);
}
|
|