STM32¿âº¯ÊýÏé½â ÏÂÔØ±¾ÎÄ

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);

11 º¯ÊýADC_SoftwareStartConvCmd();

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜÖ¸¶¨µÄADCµÄÈí¼þת»»Æô¶¯¹¦ÄÜ Àý£º

ADC_SoftwareStartConvCmd(ADC1, ENABLE);

12 º¯ÊýADC_GetSoftwareStartConvStatus();

¹¦ÄÜÃèÊö£º»ñÈ¡ADCÈí¼þת»»Æô¶¯×´Ì¬ Àý£º

FlagStatus Status; Status = ADC_GetSoftwareStartConvStatus(ADC1);

13 º¯ÊýADC_DiscModeChannelCountConfig();

¹¦ÄÜÃèÊö£º¶ÔADC¹æÔò×éͨµÀÅäÖüä¶Ïģʽ Àý£º

ADC_DiscModeChannelCountConfig(ADC1, 2);

33

14 º¯ÊýADC_DiscModeCmd();

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜÖ¸¶¨µÄADC¹æÔò×éͨµÀµÄ¼ä¶Ïģʽ Àý£º

ADC_DiscModeCmd(ADC1, ENABLE);

15 º¯ÊýADC_RegularChannelConfig();

¹¦ÄÜÃèÊö£ºÉèÖÃÖ¸¶¨ADCµÄ¹æÔò×éͨµÀ£¬ÉèÖÃËüÃǵÄת»¯Ë³ÐòºÍ²ÉÑùʱ¼ä Àý£º

ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 1, ADC_SampleTime_7Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 2, ADC_SampleTime_1Cycles5);

ADC_Channel ²ÎÊýADC_ChannelÖ¸¶¨ÁËͨ¹ýµ÷Óú¯ÊýADC_RegularChannelConfigÀ´ÉèÖõÄADCͨµÀ¡£ADC_Channel_0£ºÑ¡ÔñADCͨµÀ0 ADC_Channel_1£ºÑ¡ÔñADCͨµÀ1 ADC_Channel_2£ºÑ¡ÔñADCͨµÀ2 ADC_Channel_3£ºÑ¡ÔñADCͨµÀ3 ADC_Channel_4£ºÑ¡ÔñADCͨµÀ4 ADC_Channel_5£ºÑ¡ÔñADCͨµÀ5 ADC_Channel_6£ºÑ¡ÔñADCͨµÀ6 ADC_Channel_7£ºÑ¡ÔñADCͨµÀ7 ADC_Channel_8£ºÑ¡ÔñADCͨµÀ8 ADC_Channel_9£ºÑ¡ÔñADCͨµÀ9 ADC_Channel_10£ºÑ¡ÔñADCͨµÀ10 ADC_Channel_11£ºÑ¡ÔñADCͨµÀ11 ADC_Channel_12£ºÑ¡ÔñADCͨµÀ12 ADC_Channel_13£ºÑ¡ÔñADCͨµÀ13 ADC_Channel_14£ºÑ¡ÔñADCͨµÀ14 ADC_Channel_15£ºÑ¡ÔñADCͨµÀ15 ADC_Channel_16£ºÑ¡ÔñADCͨµÀ16 ADC_Channel_17£ºÑ¡ÔñADCͨµÀ17

ADC_SampleTime

ADC_SampleTimeÉ趨ÁËÑ¡ÖÐͨµÀµÄADC²ÉÑùʱ¼ä¡£ ADC_SampleTime_1Cycles5£º²ÉÑùʱ¼äΪ1.5ÖÜÆÚ ADC_SampleTime_7Cycles5£º²ÉÑùʱ¼äΪ7.5ÖÜÆÚ ADC_SampleTime_13Cycles5£º²ÉÑùʱ¼äΪ13.5ÖÜÆÚ ADC_SampleTime_28Cycles5£º²ÉÑùʱ¼äΪ28.5ÖÜÆÚ ADC_SampleTime_41Cycles5£º²ÉÑùʱ¼äΪ41.5ÖÜÆÚ ADC_SampleTime_55Cycles5£º²ÉÑùʱ¼äΪ55.5ÖÜÆÚ ADC_SampleTime_71Cycles5£º²ÉÑùʱ¼äΪ71.5ÖÜÆÚ ADC_SampleTime_239Cycles5£º²ÉÑùʱ¼äΪ239.5ÖÜÆÚ

16 º¯ÊýADC_ExternalTrigConvConfig();

34

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜADCxµÄ¾­Íⲿ´¥·¢Æô¶¯×ª»»¹¦ÄÜ Àý£º

ADC_ExternalTrigConvCmd(ADC1, ENABLE);

17 º¯ÊýADC_GetConversionValue();

¹¦ÄÜÃèÊö£º·µ»Ø×î½üÒ»´ÎADCx¹æÔò×éµÄת»»½á¹û Àý£º

u16 DataValue;

DataValue = ADC_GetConversionValue(ADC1);

18 º¯ÊýADC_GetDuelModeConversionValue();

¹¦ÄÜÃèÊö£º·µ»Ø×î½üÒ»´ÎË«ADCģʽϵÄת»»½á¹û Àý£º

u32 DataValue;

DataValue = ADC_GetDualModeConversionValue();

19 º¯ÊýADC_AutoInjectedConvCmd();

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜÖ¸¶¨ADCÔÚ¹æÔò×éת»¯ºó×Ô¶¯¿ªÊ¼×¢Èë×éת»» Àý£º

ADC_AutoInjectedConvCmd(ADC2, ENABLE);

20 º¯ÊýADC_InjectedDiscModeCmd();

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜÖ¸¶¨ADCµÄ×¢Èë×é¼ä¶Ïģʽ Àý£º

ADC_InjectedDiscModeCmd(ADC2, ENABLE);

21 º¯ÊýADC_ExternalTrigInjectedConvConfig();

¹¦ÄÜÃèÊö£ºÅäÖÃADCxµÄÍⲿ´¥·¢Æô¶¯×¢Èë×éת»»¹¦ÄÜ Àý£º

ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigConv_T1_CC4);

ADC_ExternalTrigInjectedConv

ADC_ExternalTrigInjectedConvÖ¸¶¨ÁËËùʹÓõÄ×¢Èëת»»Æô¶¯´¥·¢¡£

ADC_ExternalTrigInjecConv_T1_TRGO£ºÑ¡Ôñ¶¨Ê±Æ÷1µÄTRGO×÷ΪעÈëת»»Íⲿ´¥·¢ ADC_ExternalTrigInjecConv_T1_CC4£ºÑ¡Ôñ¶¨Ê±Æ÷1µÄ²¶»ñ±È½Ï4×÷ΪעÈëת»»Íⲿ´¥·¢ ADC_ExternalTrigInjecConv_T2_TRGO£ºÑ¡Ôñ¶¨Ê±Æ÷2µÄTRGO×÷ΪעÈëת»»Íⲿ´¥·¢ ADC_ExternalTrigInjecConv_T2_CC1£ºÑ¡Ôñ¶¨Ê±Æ÷2µÄ²¶»ñ±È½Ï1×÷ΪעÈëת»»Íⲿ´¥·¢ ADC_ExternalTrigInjecConv_T3_CC4£ºÑ¡Ôñ¶¨Ê±Æ÷3µÄ²¶»ñ±È½Ï4×÷ΪעÈëת»»Íⲿ´¥·¢ ADC_ExternalTrigInjecConv_T4_TRGO£ºÑ¡Ôñ¶¨Ê±Æ÷4µÄTRGO×÷ΪעÈëת»»Íⲿ´¥·¢

35

ADC_ExternalTrigInjecConv_Ext_IT15£ºÑ¡ÔñÍⲿÖжÏÏß15ʼþ×÷ΪעÈëת»»Íⲿ´¥·¢ ADC_ExternalTrigInjecConv_None£º×¢Èëת»»ÓÉÈí¼þ¶ø²»ÊÇÍⲿ´¥·¢Æô¶¯

22 º¯ÊýADC_ExternalTrigInjectedConvCmd();

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜADCxµÄ¾­Íⲿ´¥·¢Æô¶¯×¢Èë×éת»»¹¦ÄÜ Àý£º

ADC_ExternalTrigInjectedConvCmd(ADC1, ENABLE);

23 º¯ÊýADC_SoftwareStartinjectedConvCmd();

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜADCxÈí¼þÆô¶¯×¢Èë×éת»»¹¦ÄÜ Àý£º

ADC_SoftwareStartInjectedConvCmd(ADC2, ENABLE);

24 º¯ÊýADC_GetsoftwareStartinjectedConvStatus();

¹¦ÄÜÃèÊö£º»ñȡָ¶¨ADCµÄÈí¼þÆô¶¯×¢Èë×éת»»×´Ì¬ Àý£º

FlagStatus Status; Status = ADC_GetSoftwareStartInjectedConvStatus(ADC1);

25 º¯ÊýADC_InjectedChannleConfig();

¹¦ÄÜÃèÊö£ºÉèÖÃÖ¸¶¨ADCµÄ×¢Èë×éͨµÀ£¬ÉèÖÃËüÃǵÄת»¯Ë³ÐòºÍ²ÉÑùʱ¼ä Àý£º

ADC_InjectedChannelConfig(ADC1, ADC_Channel_12, 2, ADC_SampleTime_28Cycles5); ADC_InjectedChannelConfig(ADC2, ADC_Channel_4, 11, ADC_SampleTime_71Cycles5);

26 º¯ÊýADC_InjectedSequencerLengthConfig();

¹¦ÄÜÃèÊö£ºÉèÖÃ×¢Èë×éͨµÀµÄת»»ÐòÁг¤¶È Àý£º

ADC_InjectedSequencerLengthConfig(ADC1, 4);

27 º¯ÊýADC_SetinjectedOffset();

¹¦ÄÜÃèÊö£ºÉèÖÃ×¢Èë×éͨµÀµÄת»»Æ«ÒÆÖµ Àý£º

ADC_SetInjectedOffset(ADC1, ADC_InjectedChannel_3, 0x100);

ADC_InjectedChannel

²ÎÊýADC_InjectedChannelÖ¸¶¨Á˱ØÐëÉèÖÃת»»Æ«ÒÆÖµµÄADCͨµÀ¡£

ADC_InjectedChannel_1£ºÑ¡Ôñ×¢ÈëͨµÀ1 ADC_InjectedChannel_2 Ñ¡Ôñ×¢ÈëͨµÀ2

36