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

ADC_InjectedChannel_3£ºÑ¡Ôñ×¢ÈëͨµÀ3 ADC_InjectedChannel_4 Ñ¡Ôñ×¢ÈëͨµÀ4

28 º¯ÊýADC_GetInjectedConversionValue();

¹¦ÄÜÃèÊö£º·µ»ØADCÖ¸¶¨×¢ÈëͨµÀµÄת»»½á¹û Àý£º

u16InjectedDataValue;InjectedDataValue=ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_1);

29 º¯ÊýADC_AnalogWatchdogCmd();

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜÖ¸¶¨µ¥¸ö/È«Ì壬¹æÔò/×¢Èë×éͨµÀÉϵÄÄ£Äâ¿´ÃŹ· Àý£º

ADC_AnalogWatchdogCmd(ADC2, ADC_AnalogWatchdog_AllRegAllInjecEnable);

30 º¯ÊýADC_AnalogWatchdongThresholdsConfig();

¹¦ÄÜÃèÊö£ºÉèÖÃÄ£Äâ¿´ÃŹ·µÄ¸ß/µÍãÐÖµ Àý£º

ADC_AnalogWatchdogThresholdsConfig(ADC1, 0x400, 0x100);

31 º¯ÊýADC_AnalogWatchdongSingleChannelConfig();

¹¦ÄÜÃèÊö£º¶Ôµ¥¸öADCͨµÀÉèÖÃÄ£Äâ¿´ÃŹ· Àý£º

ADC_AnalogWatchdogSingleChannelConfig(ADC1, ADC_Channel_1);

32 º¯ÊýADC_TampSensorVrefintCmd();

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜζȴ«¸ÐÆ÷ºÍÄÚ²¿²Î¿¼µçѹͨµÀ Àý£º

ADC_TempSensorVrefintCmd(ENABLE);

33 º¯ÊýADC_GetFlagStatus();

¹¦ÄÜÃèÊö£º¼ì²éÖÆ¶¨ADC±ê־λÖÃ1Óë·ñ Àý£º

FlagStatus Status; Status = ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC);

ADC_FLAG

ADC_FLAG_AWD Ä£Äâ¿´ÃŹ·±ê־λ ADC_FLAG_EOC ת»»½áÊø±ê־λ ADC_FLAG_JEOC ×¢Èë×éת»»½áÊø±ê־λ ADC_FLAG_JSTRT ×¢Èë×éת»»¿ªÊ¼±ê־λ ADC_FLAG_STRT ¹æÔò×éת»»¿ªÊ¼±ê־λ

37

34 º¯ÊýADC_ClearFlag();

¹¦ÄÜÃèÊö£ºÇå³ýADCxµÄ´ý´¦Àí±ê־λ Àý£º

ADC_ClearFlag(ADC2, ADC_FLAG_STRT);

35 º¯ÊýADC_GetITStatus();

¹¦ÄÜÃèÊö£º¼ì²éÖ¸¶¨µÄADCÖжÏÊÇ·ñ·¢Éú Àý£º

ITStatus Status; Status = ADC_GetITStatus(ADC1, ADC_IT_AWD);

36 º¯ÊýADC_ClearITPendingBit();

¹¦ÄÜÃèÊö£ºÇå³ýADCxµÄÖжϴý´¦Àíλ Àý£º

ADC_ClearITPendingBit(ADC2, ADC_IT_JEOC);

Î壺±¸·Ý¼Ä´æÆ÷£¨BKP£©

BKP¼Ä´æÆ÷½á¹¹

BKP_TypeDef£¬ÔÚÎļþ¡°stm32f10x_map.h¡±Öж¨ÒåÈçÏ£º

typedef struct {

u32 RESERVED0; vu16 DR1;

u16 RESERVED1; vu16 DR2;

u16 RESERVED2; vu16 DR3;

u16 RESERVED3; vu16 DR4;

u16 RESERVED4;

38

vu16 DR5;

u16 RESERVED5; vu16 DR6;

u16 RESERVED6; vu16 DR7;

u16 RESERVED7; vu16 DR8;

u16 RESERVED8; vu16 DR9;

u16 RESERVED9; vu16 DR10;

u16 RESERVED10; vu16 RTCCR;

u16 RESERVED11; vu16 CR;

u16 RESERVED12; vu16 CSR;

u16 RESERVED13; }

BKP_TypeDef;

BKP¿âº¯Êý

1 º¯ÊýBKP_DeInit();

¹¦ÄÜÃèÊö£º½«ÍâÉèBKPµÄÈ«²¿¼Ä´æÆ÷ÖØÉèΪȱʡֵ Àý£º

BKP_DeInit();

2 º¯ÊýBKP_TamperPinLevelConfig();

¹¦ÄÜÃèÊö£ºÉèÖÃÇÖÈë¼ì²â¹Ü½ÅµÄÓÐЧµçƽ Àý£º

BKP_TamperPinLevelConfig(BKP_TamperPinLevel_High);

BKP_TamperPinLevel

²ÎÊýBKP_TamperPinLevelÖ¸¶¨ÁËÇÖÈë¼ì²â¹Ü½ÅµÄÓÐЧµçƽ¡£ BKP_TamperPinLevel_High£ºÇÖÈë¼ì²â¹Ü½Å¸ßµçƽÓÐЧ BKP_TamperPinLevel_Low£ºÇÖÈë¼ì²â¹Ü½ÅµÍµçƽÓÐЧ

3 º¯ÊýBKP_TamperPinCmd();

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄܹܽŵÄÇÖÈë¼ì²â¹¦ÄÜ Àý£º

39

BKP_TamperPinCmd(ENABLE);

4 º¯ÊýBKP_ITConfig();

¹¦ÄÜÃèÊö£ºÊ¹ÄÜ»òÕßʧÄÜÇÖÈë¼ì²âÖÐ¶Ï Àý£º

BKP_ITConfig(ENABLE);

5 º¯ÊýBKP_RTCOutputConfig();

¹¦ÄÜÃèÊö£ºÑ¡ÔñÔÚÇÖÈë¼ì²â¹Ü½ÅÉÏÊä³öµÄRTCʱÖÓÔ´ Àý£º

BKP_RTCOutputConfig(BKP_RTCOutputSource_CalibClock);

BKP_RTCOutputSource

²ÎÊýBKP_RTCOutputSourceÓÃÀ´Ñ¡ÔñRTCÊä³öʱÖÓÔ´ BKP_RTCOutputSource_None ÇÖÈë¼ì²â¹Ü½ÅÉÏÎÞRTCÊä³ö

BKP_RTCOutputSource_CalibClock ÇÖÈë¼ì²â¹Ü½ÅÉÏÊä³ö£¬ÆäʱÖÓÆµÂÊΪRTCʱÖÓ³ýÒÔ64 BKP_RTCOutputSource_Alarm ÇÖÈë¼ì²â¹Ü½ÅÉÏÊä³öRTCÄÖÖÓÂö³å BKP_RTCOutputSource_Second ÇÖÈë¼ì²â¹Ü½ÅÉÏÊä³öRTCÃëÂö³å

6 º¯ÊýBKP_SetRTCCalibrationValue();

¹¦ÄÜÃèÊö£ºÉèÖÃRTCʱÖÓУ׼ֵ Àý£º

BKP_SetRTCCalibrationValue(0x7F);

7 º¯ÊýBKP_WriteBackupRegister();

¹¦ÄÜÃèÊö£ºÏòÖ¸¶¨µÄºó±¸¼Ä´æÆ÷ÖÐдÈëÓû§³ÌÐòÊý¾Ý Àý£º

BKP_WriteBackupRegister(BKP_DR1, 0xA587);

BKP_DR ²ÎÊýBKP_DRÓÃÀ´Ñ¡ÔñÊý¾Ýºó±¸¼Ä´æÆ÷

BKP_DRx£ºÑ¡ÖÐÊý¾Ý¼Ä´æÆ÷x£¨1¡ª10£©

8 º¯ÊýBKP_ReadBackupRegister();

¹¦ÄÜÃèÊö£º´ÓÖ¸¶¨µÄºó±¸¼Ä´æÆ÷ÖжÁ³öÊý¾Ý Àý£º

u16 Data; Data = BKP_ReadBackupRegister(BKP_DR1);

9 º¯ÊýBKP_GetFlagStatus();

40