سلام
پس یعنی شما توی کانفیگ مشکلی ندارید
استفاده ازش هم کار مشکلی نیست البته در مورد تایمر اعتراف میکنم که اونقد رجیستر داره که منم کم آوردم و بعضی وقت ها قات میزنم
ولی چون از CMSIS استفاده میکنید دستوراتش با F103 شاید خیلی کم تفاوت داشته باشه میتونید برای راهنمائی از مثال های توی تایپیک 103 هم استفاده کند
این یک نمونه برای کانفیگ و خوندن ADC برای 407 هست :
کد:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
ADC_CommonInit(&ADC_CommonInitStructure);
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_T1_CC1;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfConversion = 1;
ADC_Init(ADC1, &ADC_InitStructure);
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_56Cycles);
با اینا هم ADC فعال میشه :
کد:
ADC_Cmd(ADC1, ENABLE);
ADC_SoftwareStartConv(ADC1);
و این دستور هم مقدار ADC رو میخونه و در متغیر ذخیره میکنه :
کد:
i=ADC_GetConversionValue(ADC1);
راستی یادم رفت بگم این مثالی که شما گذاشتید برای 103 هست نه 407 (اگه دقت کنید این تایپیک برای میکروی 407 هست)