| | |
| | | #include "ADC.h" |
| | | |
| | | //#define DEBUG_MODE |
| | | /* |
| | | * 设置 IWDG çè¶
æ¶æ¶é´ |
| | | * Tout = prv/40 * rlv (s) |
| | | * prvå¯ä»¥æ¯[4,8,16,32,64,128,256] |
| | | * prv:é¢åé¢å¨å¼ï¼åå¼å¦ä¸ï¼ |
| | | * @arg IWDG_Prescaler_4: IWDG prescaler set to 4 |
| | | * @arg IWDG_Prescaler_8: IWDG prescaler set to 8 |
| | | * @arg IWDG_Prescaler_16: IWDG prescaler set to 16 |
| | | * @arg IWDG_Prescaler_32: IWDG prescaler set to 32 |
| | | * @arg IWDG_Prescaler_64: IWDG prescaler set to 64 |
| | | * @arg IWDG_Prescaler_128: IWDG prescaler set to 128 |
| | | * @arg IWDG_Prescaler_256: IWDG prescaler set to 256 |
| | | * |
| | | * ç¬ç«çé¨ç使ç¨LSIä½ä¸ºæ¶éã |
| | | * LSI çé¢çä¸è¬å¨ 30~60KHZ ä¹é´ï¼æ ¹æ®æ¸©åº¦åå·¥ä½åºå伿ä¸å®çæ¼ç§»ï¼æ |
| | | * 们ä¸è¬å 40KHZï¼æä»¥ç¬ç«çé¨çç宿¶æ¶é´å¹¶ä¸å®é常精确ï¼åªéç¨äºå¯¹æ¶é´ç²¾åº¦ |
| | | * è¦æ±æ¯è¾ä½çåºåã |
| | | * |
| | | * rlv:éè£
è½½å¯åå¨çå¼ï¼åå¼èå´ä¸ºï¼0-0XFFF |
| | | * 彿°è°ç¨ä¸¾ä¾ï¼ |
| | | * IWDG_Config(IWDG_Prescaler_64 ,625); // IWDG 1s è¶
æ¶æº¢åº |
| | | * ï¼64/40ï¼*625 = 1s |
| | | */ |
| | | |
| | | void IWDG_Config(uint8_t prv ,uint16_t rlv) |
| | | { |
| | | // ä½¿è½ é¢åé¢å¯åå¨PRåéè£
è½½å¯åå¨RLRå¯å |
| | | IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable ); |
| | | |
| | | // 设置é¢åé¢å¨å¼ |
| | | IWDG_SetPrescaler( prv ); |
| | | |
| | | // 设置éè£
è½½å¯åå¨å¼ |
| | | IWDG_SetReload( rlv ); |
| | | |
| | | // æéè£
è½½å¯åå¨ç弿¾å°è®¡æ°å¨ä¸ |
| | | IWDG_ReloadCounter(); |
| | | |
| | | // ä½¿è½ IWDG |
| | | IWDG_Enable(); |
| | | } |
| | | void IWDG_Feed(void) |
| | | { |
| | | IWDG_ReloadCounter(); |
| | | } |
| | | void Device_Init(void) |
| | | { |
| | | RCC_Configuration(); |
| | |
| | | Uart1_Init(); |
| | | Spi_Init(); |
| | | ADC_Configuration(); |
| | | |
| | | IWDG_Config(IWDG_Prescaler_128 ,4095); //10s |
| | | IWDG_Feed(); |
| | | GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); |
| | | } |
| | | u8 anchor_type; |
| | |
| | | // Delay_ms(100); |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软å¤ä½åå°bootloader |
| | | } |
| | | if(g_com_map[CNT_REBOOT]==1) |
| | | if(g_com_map[CNT_REBOOT]==1) |
| | | { |
| | | g_com_map[CNT_REBOOT]=0; |
| | | g_com_map[MAP_SIGN_INDEX]=0; |
| | | save_com_map_to_flash(); |
| | | FactorySettings(); |
| | | delay_ms(100); |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软å¤ä½åå°bootloader |
| | | } |
| | |
| | | delay_ms(100); |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软å¤ä½åå°bootloader |
| | | } |
| | | if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) |
| | | if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) |
| | | { |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软å¤ä½åå°bootloader |
| | | } |
| | | |
| | | } |
| | | |
| | | int main(void) |
| | | { |
| | | |