72 º¯ÊýTIM_ClearITPendingBit
¹¦ÄÜÃèÊö£ºÇå³ýTIMxµÄÖжϴý´¦Àíλ Àý£º
TIM_ClearITPendingBit(TIM2, TIM_IT_CC1);
ËÄ£ºADC¼Ä´æÆ÷
ADCÅäÖùæÔò
void ADC_Config(void)
{
¶¨ÒåADC³õʼ»¯½á¹¹Ìå±äÁ¿ // ADC_Init(); ADC1ºÍADC2¹¤×÷ģʽ ʹÄÜɨÃè
ADCת»»¹¤×÷ģʽ ÓÉÈí¼þ¿ØÖÆ×ª»» ת»»Êý¾ÝÓÒ¶ÔÆë ÉèÖÃת»»Í¨µÀ
³õʼ»¯ADC // ADC_Init();
ADC1Ñ¡ÔñÐŵÀ¡¢ÒôÐòÆ÷µÈ¼¶¡¢²ÉÑùʱ¼ä ʹÄÜADC1Ä£¿éDMA ʹÄÜADC1
ÖØÖÃADC1У׼¼Ä´æÆ÷ µÈ´ýADC1Ð£×¼ÖØÖÃÍê³É ¿ªÊ¼ADC1У׼ µÈ´ýADC1У׼Íê³É ʹÄÜADC1Èí¼þ¿ªÊ¼×ª»» }
ADC¼Ä´æÆ÷½á¹¹
ADC_TypeDef£¬¶¨ÒåÓÚÎļþ¡°stm32f10x_map.h¡±ÈçÏ£º
typedef struct {
vu32 SR; vu32 CR1; vu32 CR2; vu32 SMPR1; vu32 SMPR2; vu32 JOFR1; vu32 JOFR2; vu32 JOFR3; vu32 JOFR4; vu32 HTR;
25
vu32 LTR; vu32 SQR1; vu32 SQR2; vu32 SQR3; vu32 JSQR; vu32 JDR1; vu32 JDR2; vu32 JDR3; vu32 JDR4; vu32 DR; }
ADC_TypeDef;
ADC¿âº¯Êý
1¡¢ADC_DeInit();
¹¦ÄÜÃèÊö£º½«ÍâÉèADCxµÄÈ«²¿¼Ä´æÆ÷ÖØÉèΪȱʡֵ
Àý£º
ADC_DeInit(ADC2);
2¡¢ADC_Init();
¹¦ÄÜÃèÊö£º¸ù¾ÝADC_InitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèADCxµÄ¼Ä´æÆ÷
Àý£º {
ADC_InitTypeDef ADC_InitStructure;
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_Ext_IT11; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 16; ADC_Init(ADC1, &ADC_InitStructure); }
ADC_InitStruct£ºÖ¸Ïò½á¹¹ADC_InitTypeDefµÄÖ¸Õ룬°üº¬ÁËÖ¸¶¨ÍâÉèADCµÄÅäÖÃÐÅÏ¢
ADC_InitTypeDef£º typedef struct {
u32 ADC_Mode;
FunctionalState ADC_ScanConvMode;
FunctionalState ADC_ContinuousConvMode; u32 ADC_ExternalTrigConv; u32 ADC_DataAlign; u8 ADC_NbrOfChannel; }
ADC_InitTypeDef
ADC_Mode£º
ADC_Mode_Independent£ºADC1ºÍADC2¹¤×÷ÔÚ¶ÀÁ¢Ä£Ê½
ADC_Mode_RegInjecSimult£ºADC1ºÍADC2¹¤×÷ÔÚͬ²½¹æÔòºÍͬ²½×¢Èëģʽ
ADC_Mode_RegSimult_AlterTrig£ºADC1ºÍADC2¹¤×÷ÔÚͬ²½¹æÔòģʽºÍ½»Ìæ´¥·¢Ä£Ê½ ADC_Mode_InjecSimult_FastInterl£ºADC1ºÍADC2¹¤×÷ÔÚͬ²½¹æÔòģʽºÍ¿ìËÙ½»ÌæÄ£Ê½ ADC_Mode_InjecSimult_SlowInterl£ºADC1ºÍADC2¹¤×÷ÔÚͬ²½×¢ÈëģʽºÍÂýËÙ½»ÌæÄ£Ê½ADC_Mode_InjecSimult£ºADC1ºÍADC2¹¤×÷ÔÚͬ²½×¢Èëģʽ
26
ADC_Mode_RegSimult£ºADC1ºÍADC2¹¤×÷ÔÚͬ²½¹æÔòģʽ ADC_Mode_FastInterl£ºADC1ºÍADC2¹¤×÷ÔÚ¿ìËÙ½»ÌæÄ£Ê½ ADC_Mode_SlowInterl£ºADC1ºÍADC2¹¤×÷ÔÚÂýËÙ½»ÌæÄ£Ê½ ADC_Mode_AlterTrig£ºADC1ºÍADC2¹¤×÷ÔÚ½»Ìæ´¥·¢Ä£Ê½
Àý£º
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_ScanConvMode£º
ADC_ScanConvMode¹æ¶¨ÁËÄ£Êýת»»¹¤×÷ÔÚɨÃèģʽ£¨¶àͨµÀ£©»¹Êǵ¥´Î£¨µ¥Í¨µÀ£©Ä£Ê½¡£¿ÉÒÔÉèÖÃÕâ¸ö²ÎÊýΪENABLE»òÕßDISABLE¡£
Àý£º
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_ContinuousConvMode£º
ADC_ContinuousConvMode¹æ¶¨ÁËÄ£Êýת»»¹¤×÷ÔÚÁ¬Ðø»¹Êǵ¥´Îģʽ¡£¿ÉÒÔÉèÖÃÕâ¸ö²ÎÊýΪENABLE»òÕßDISABLE¡£
Àý£º
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_ExternalTrigConv£º
ADC_ExternalTrigConv_T1_CC1£ºÑ¡Ôñ¶¨Ê±Æ÷1µÄ²¶»ñ±È½Ï1×÷Ϊת»»Íⲿ´¥·¢ ADC_ExternalTrigConv_T1_CC2£ºÑ¡Ôñ¶¨Ê±Æ÷1µÄ²¶»ñ±È½Ï2×÷Ϊת»»Íⲿ´¥·¢ ADC_ExternalTrigConv_T1_CC3£ºÑ¡Ôñ¶¨Ê±Æ÷1µÄ²¶»ñ±È½Ï3×÷Ϊת»»Íⲿ´¥·¢ ADC_ExternalTrigConv_T2_CC2£ºÑ¡Ôñ¶¨Ê±Æ÷2µÄ²¶»ñ±È½Ï2×÷Ϊת»»Íⲿ´¥·¢ ADC_ExternalTrigConv_T3_TRGO£ºÑ¡Ôñ¶¨Ê±Æ÷3µÄTRGO×÷Ϊת»»Íⲿ´¥·¢ ADC_ExternalTrigConv_T4_CC4£ºÑ¡Ôñ¶¨Ê±Æ÷4µÄ²¶»ñ±È½Ï4×÷Ϊת»»Íⲿ´¥·¢ ADC_ExternalTrigConv_Ext_IT11£ºÑ¡ÔñÍⲿÖжÏÏß11ʼþ×÷Ϊת»»Íⲿ´¥·¢ ADC_ExternalTrigConv_None£º×ª»»ÓÉÈí¼þ¶ø²»ÊÇÍⲿ´¥·¢Æô¶¯
Àý£º
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_Ext_IT11;
ADC_DataAlign£º
ADC_DataAlign_Right£ºADCÊý¾ÝÓÒ¶ÔÆë ADC_DataAlign_Left£ºADCÊý¾Ý×ó¶ÔÆë
Àý£º
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_NbrOfChannel£º
ADC_NbreOfChannel ¹æ¶¨ÁË˳Ðò½øÐйæÔòת»»µÄADCͨµÀµÄÊýÄ¿¡£Õâ¸öÊýÄ¿µÄȡֵ·¶Î§ÊÇ1µ½16¡£
Àý£º
ADC_InitStructure.ADC_NbrOfChannel = 16;
3 º¯ÊýADC_StructInit();
¹¦ÄÜÃèÊö£º°ÑADC_InitStructÖеÄÿһ¸ö²ÎÊý°´È±Ê¡ÖµÌîÈ룬ÈçÏ£º ADC_Mode£ºADC_Mode_Independent ADC_ScanConvMode£ºDISABLE
ADC_ContinuousConvMode£ºDISABLE
ADC_ExternalTrigConv£ºADC_ExternalTrigConv_T1_CC1 ADC_DataAlign£ºADC_DataAlign_Right ADC_NbrOfChannel£º1 Àý£º
ADC_InitTypeDef ADC_InitStructure;
ADC_StructInit(&ADC_InitStructure);
27
4 º¯ÊýADC_Cmd();
¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜÖ¸¶¨µÄADC Àý£º
ADC_Cmd(ADC1, ENABLE);
5 º¯ÊýADC_DMACmd();
¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜÖ¸¶¨µÄADCµÄDMAÇëÇó Àý£º
ADC_DMACmd(ADC2, ENABLE);
6 º¯ÊýADC_ITConfig();
¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜÖ¸¶¨µÄADCµÄÖÐ¶Ï Àý£º
ADC_ITConfig(ADC2, ADC_IT_EOC | ADC_IT_AWD, ENABLE);
ADC_IT£º
ADC_IT¿ÉÒÔÓÃÀ´Ê¹ÄÜ»òÕßʧÄÜADCÖжϡ£¿ÉÒÔʹÓÃϱíÖеÄÒ»¸ö²ÎÊý£¬»òÕßËûÃǵÄ×éºÏ¡£ADC_IT_EOC EOC£ºÖÐ¶ÏÆÁ±Î ADC_IT_AWD AWDOG£ºÖÐ¶ÏÆÁ±Î ADC_IT_JEOC JEOC£ºÖÐ¶ÏÆÁ±Î
7 º¯ÊýADC_ResetCalibration();
¹¦ÄÜÃèÊö£ºÖØÖÃÖ¸¶¨µÄADCµÄУ׼¼Ä´æÆ÷ Àý£º
ADC_ResetCalibration(ADC1);
8 º¯ÊýADC_GetResetCalibrationStatus();
¹¦ÄÜÃèÊö£º»ñÈ¡ADCÖØÖÃУ׼¼Ä´æÆ÷µÄ״̬ Àý£º
FlagStatus Status;
Status = ADC_GetResetCalibrationStatus(ADC2);
9 º¯ÊýADC_StartCalibration();
¹¦ÄÜÃèÊö£º¿ªÊ¼Ö¸¶¨ADCµÄУ׼״̬ Àý£º
ADC_StartCalibration(ADC2);
10 º¯ÊýADC_GetCalibrationStatus();
¹¦ÄÜÃèÊö£º»ñȡָ¶¨ADCµÄУ׼³ÌÐò Àý£º
FlagStatus Status;
Status = ADC_GetCalibrationStatus(ADC2);
28