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