| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497 |
- #include "boardinit.h"
- #include "../App/public.h"
- #include "../App/xspDataOpt.h"
- TestInitConut testcount;
- extiMsg_t g_extimsg; // 中断信息
- Identity g_iDentity; // 身份信息 主或从
- DevResetMsg g_devResetMsg;
- DevPtMsg g_devPtMsg;
- GunStatus01 g_gunSta;
- PortMsg g_portMsg[4] = {
- {GPIOD,GPIO_PIN_5, GPIO_PIN_1, GPIO_PIN_3, GPIO_PIN_2},
- {GPIOE,GPIO_PIN_5, GPIO_PIN_1, GPIO_PIN_3, GPIO_PIN_2},
- {GPIOD,GPIO_PIN_13,GPIO_PIN_9, GPIO_PIN_11,GPIO_PIN_10},
- {GPIOE,GPIO_PIN_14,GPIO_PIN_10,GPIO_PIN_12,GPIO_PIN_11},
- };
- /* CS_D_0:PB15 CS_D_1:PB14 CS_D_2:PB13 CS_D_3:PB12
- * CS_D_4:PE7 CS_D_5:PB1 CS_D_6:PB0 CS_D_7:PC5
- * CS_D_8:PC4 CS_D_9:PA7 CS_D_10:PA6 CS_D_11:PA5
- *
- * CS_U_0:PE1 CS_U_1:PE0 CS_U_2:PB9 CS_U_3:PB8
- * CS_U_4:PB7 CS_U_5:PB6 CS_U_6:PB5 CS_U_7:PC11
- * CS_U_8:PC10 CS_U_9:PA15 CS_U_10:PA12 CS_U_11:PA11
- */
- CSPortMsg g_csPortMsg[24] = {
- {GPIOB,GPIO_PIN_15}, //CS_D_00--PB15
- {GPIOB,GPIO_PIN_14}, //CS_D_01--PB14
- {GPIOB,GPIO_PIN_13}, //CS_D_02--PB13
- {GPIOB,GPIO_PIN_12}, //CS_D_03--PB12
- {GPIOE,GPIO_PIN_7}, //CS_D_04--PE7
- {GPIOB,GPIO_PIN_1}, //CS_D_05--PB1
- {GPIOB,GPIO_PIN_0}, //CS_D_06--PB0
- {GPIOC,GPIO_PIN_5}, //CS_D_07--PC5
- {GPIOC,GPIO_PIN_4}, //CS_D_08--PC4
- {GPIOA,GPIO_PIN_7}, //CS_D_09--PA7
- {GPIOA,GPIO_PIN_6}, //CS_D_10--PA6
- {GPIOA,GPIO_PIN_5}, //CS_D_11--PA5
- {GPIOE,GPIO_PIN_1}, //CS_U_00--PE1
- {GPIOE,GPIO_PIN_0}, //CS_U_01--PE0
- {GPIOB,GPIO_PIN_9}, //CS_U_02--PB9
- {GPIOB,GPIO_PIN_8}, //CS_U_03--PB8
- {GPIOB,GPIO_PIN_7}, //CS_U_04--PB7
- {GPIOB,GPIO_PIN_6}, //CS_U_05--PB6
- {GPIOB,GPIO_PIN_5}, //CS_U_06--PB5
- {GPIOC,GPIO_PIN_12}, //CS_U_07--PC12
- {GPIOC,GPIO_PIN_11}, //CS_U_08--PC11
- {GPIOC,GPIO_PIN_10}, //CS_U_09--PC10
- {GPIOA,GPIO_PIN_12}, //CS_U_10--PA12
- {GPIOA,GPIO_PIN_11}, //CS_U_11--PA11
- };
- void exti_irq_fuction(void)
- {
- volatile uint8_t status = 0;
- volatile uint8_t i = 0,j=0,daUp,daDn;
- volatile uint32_t count = 0;
- // if(RESET == gpio_input_bit_get(g_extimsg.extiPort,g_extimsg.extiPin)){ //
- // if(testcount.btestStart==1){
- // status = gpio_input_bit_get(g_extimsg.extiPort,g_extimsg.extiPin);
- // testcount.exittest[testcount.count].tick = gTimer_tickt;
- // testcount.exittest[testcount.count].status = status;
- // testcount.count++;
- // if(testcount.count >=24) testcount.count = 0;
- // }
- #if (NO_INIT_COLLECT)
- // else {
- // g_timeInfo.bExit = 1;
- // g_timeInfo.exitTick = gTimer_tickt;
- // }
- #else
- else {
- g_timeInfo.bExit = 1;
- g_timeInfo.bRead = 0;
- //exti_interrupt_disable(g_extimsg.extiLine); // 关闭外部中断
- for(count=0;count<0x7FFF;count++)
- status = gpio_input_bit_get(g_extimsg.extiPort,g_extimsg.extiPin);
- if(status == RESET) { // COM端为电平时取数
- set_all_cs_port_status(SET); // 所有的片选置高
- for(j=0;j<20;j++);
- for(i=0;i<CS_GROUP_NUM;i++){
- gpio_bit_reset(g_csPortMsg[i].csPort,g_csPortMsg[i].csPin);
- gpio_bit_reset(g_csPortMsg[i+12].csPort,g_csPortMsg[i+12].csPin);
- for(j=0;j<20;j++);
- daDn = (gpio_input_port_get(GPIOE));//(status1)^ 因为是高电平取数据,所以要取反
- daUp = (gpio_input_port_get(GPIOD));// (status1)^
- g_timeInfo.srcDa[i] = (daDn>>8)&0xFF;
- g_timeInfo.srcDa[i+CS_GROUP_NUM] = daUp&0xFF;
- gpio_bit_set(g_csPortMsg[i].csPort,g_csPortMsg[i].csPin);
- gpio_bit_set(g_csPortMsg[i+12].csPort,g_csPortMsg[i+12].csPin);
- for(j=0;j<20;j++);
- }
- }
- g_timeInfo.bExit = 0;
- g_timeInfo.bRead = 1;
- }
- #endif
- // }
- // else if(SET == gpio_input_bit_get(g_extimsg.extiPort,g_extimsg.extiPin)){
- // if(testcount.btestStart==1){
- // status = gpio_input_bit_get(g_extimsg.extiPort,g_extimsg.extiPin);
- // testcount.exittest[testcount.count].tick = gTimer_tickt;
- // testcount.exittest[testcount.count].status = status;
- // testcount.count++;
- // if(testcount.count >=24) testcount.count = 0;
- // }
- // }
- }
- void EXTI5_9_IRQHandler(void)
- {
- volatile static uint8_t gunLevel = 0;
- // if(RESET != exti_interrupt_flag_get(g_extimsg.extiLine)){ //
- // exti_irq_fuction();
- // //if(g_extimsg.extiLine != EXTI_8)
- // exti_interrupt_flag_clear(g_extimsg.extiLine);
- // }
- }
- void EXTI10_15_IRQHandler(void)
- {
- // if(RESET != exti_interrupt_flag_get(g_extimsg.extiLine)){ //
- // exti_irq_fuction();
- // exti_interrupt_flag_clear(g_extimsg.extiLine);
- // }
- }
- void EXTI0_IRQHandler(void)
- {
- // if(RESET != exti_interrupt_flag_get(g_extimsg.extiLine)){ //
- // exti_irq_fuction();
- // exti_interrupt_flag_clear(g_extimsg.extiLine);
- // }
- }
- void EXTI1_IRQHandler(void)
- {
- // if(RESET != exti_interrupt_flag_get(g_extimsg.extiLine)){ //
- // exti_irq_fuction();
- // exti_interrupt_flag_clear(g_extimsg.extiLine);
- // }
- }
- #if(0)
- void set_port_pin(uint8_t cmd,uint8_t index)
- {
- switch(cmd){
- case CEN:
- gpio_bit_set(g_portMsg[index].group, g_portMsg[index].cePin);
- break;
- case CLK:
- gpio_bit_set(g_portMsg[index].group, g_portMsg[index].cpPin);
- break;
- case PLN:
- gpio_bit_set(g_portMsg[index].group, g_portMsg[index].plPin);
- break;
- }
- }
- void set_port_all_pin(uint8_t cmd,uint8_t index)//0x01 02 04 08
- {
- uint8_t i=0;
- for(i=0;i<4;i++){
- if(0x00 ==((index>>i)&0x01)) continue;
- set_port_pin(cmd,i);
- }
- }
- void reset_port_pin(uint8_t cmd,uint8_t index)
- {
- switch(cmd){
- case CEN:
- gpio_bit_reset(g_portMsg[index].group, g_portMsg[index].cePin);
- break;
- case CLK:
- gpio_bit_reset(g_portMsg[index].group, g_portMsg[index].cpPin);
- break;
- case PLN:
- gpio_bit_reset(g_portMsg[index].group, g_portMsg[index].plPin);
- break;
- }
- }
- void reset_port_all_pin(uint8_t cmd,uint8_t index)//0x01 02 04 08
- {
- uint8_t i=0;
- for(i=0;i<4;i++){
- if(0x00 ==((index>>i)&0x01)) continue;
- reset_port_pin(cmd,i);
- }
- }
- uint8_t read_daout_pin(uint8_t index)
- {
- uint8_t ret;
- ret = gpio_input_bit_get(g_portMsg[index].group, g_portMsg[index].doutPin);
- return ret;
- }
- #endif
- /*------------------------------------------------------------------
- * 根据配置表,初始化片选 以及外部中断
- * Port1: CS0-PD0, CS6-PD6
- * Port2: AD0-PE0, AD6-PE6
- * Port3: CS15-PD8 CS9-PD14
- * Port4: AD9-PE9 AD15-PE15
- * -----------------------------------------------------------------*/
- void exti_msg_init(void)
- {
- // uint8_t port = 0;
- epprom_read_com_config();
- // exti_interrupt_flag_clear(g_extimsg.extiLine); /* 清除中断 */
- // exti_interrupt_disable(g_extimsg.extiLine);
- /*----start cs--cs_u_1--PE0 exit--ad_u_5--PD5------*/
- /*g_extimsg.csGroup = GPIOB;
- g_extimsg.csPin = GPIO_PIN_9;
- g_extimsg.extiPin = GPIO_PIN_6;
- g_extimsg.extiPort = GPIOD;
- g_extimsg.extiIRQn = EXTI5_9_IRQn;
- g_extimsg.extiLine = EXTI_6;
- g_extimsg.extiPinSource = GPIO_PIN_SOURCE_6;
- g_extimsg.outputPort = GPIO_PORT_SOURCE_GPIOD;*///3;
- /*------------------end start---------------*/
- return;
- // switch (port){
- // case 0: // CS6
- // g_extimsg.csGroup = GPIOD;
- // g_extimsg.csPin = GPIO_PIN_6;
- // g_extimsg.extiIRQn = EXTI5_9_IRQn;
- // g_extimsg.extiLine = EXTI_6;
- // g_extimsg.extiPinSource = GPIO_PIN_SOURCE_6;
- // g_extimsg.extiPin = GPIO_PIN_6;
- // g_extimsg.outputPort = 3;
- // break;
- // case 1:
- // break;
- // case 2: // AD6
- // g_extimsg.csGroup = GPIOE;
- // g_extimsg.csPin = GPIO_PIN_6;
- // g_extimsg.extiIRQn = EXTI5_9_IRQn;
- // g_extimsg.extiLine = EXTI_6;
- // g_extimsg.extiPinSource = GPIO_PIN_SOURCE_6;
- // g_extimsg.extiPin = GPIO_PIN_6;
- // g_extimsg.outputPort = 4;
- // break;
- // case 3: // CS15--PD8
- // g_extimsg.csGroup = GPIOD;
- // g_extimsg.csPin = GPIO_PIN_8;
- // g_extimsg.extiIRQn = EXTI5_9_IRQn;
- // g_extimsg.extiLine = EXTI_8;
- // g_extimsg.extiPinSource = GPIO_PIN_SOURCE_8;
- // g_extimsg.extiPin = GPIO_PIN_8;
- // g_extimsg.outputPort = 3;
- // break;
- // default:
- // break;
- // }
- }
- /*-----------------------------------------------------------------
- * 初始化GPIO管脚
- * 版选模式:
- * CS_ALL : PE2
- * CS片选,设置为输出:
- * CS_D_0:PB15 CS_D_1:PB14 CS_D_2:PB13 CS_D_3:PB12
- * CS_D_4:PE7 CS_D_5:PB1 CS_D_6:PB0 CS_D_7:PC5
- * CS_D_8:PC4 CS_D_9:PA7 CS_D_10:PA6 CS_D_11:PA5
- *
- * CS_U_0:PE1 CS_U_1:PE0 CS_U_2:PB9 CS_U_3:PB8
- * CS_U_4:PB7 CS_U_5:PB6 CS_U_6:PB5 CS_U_7:PC12
- * CS_U_8:PC11 CS_U_9:PC10 CS_U_10:PA12 CS_U_11:PA11
- *
- * DATA信号,设置为输入:PE8~PE15(0xFF00):AD_D0~AD_D7; PD0~PD7(0x00FF):AD_U0~AD_U7
- * PE8:设置为外部中断, 上升沿下降沿中断 ,在片选CS8(PD15)上
- * 串转并模式:
- * PD0 PD1 PD6 PD8 PD9 PD14 设置为输入 (PD1 PD9为DOUT,其它为COM端) 0x4343
- * PE0 PE1 PE6 PE9 PE10 PE15 设置为输入 (PE1 PE10为DOUT,其它为COM端)0x8643
- * 其它的PE、PD端口都设置为输出 PD:0xBCBC PE:0x79BC
- * ----------------------------------------------------------------*/
- void exti_gpio_init(void)
- {
- rcu_periph_clock_enable(RCU_GPIOE);
- gpio_init(GPIOE, GPIO_MODE_IPD, GPIO_OSPEED_2MHZ,0xFF00);// PE8~PE15设置为输入
- gpio_bit_set(GPIOE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_7);// PE0/PE1/PE7 设置为输出
- gpio_init(GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_7);
- gpio_bit_reset(GPIOE, GPIO_PIN_2);// CS_ALL
- gpio_init(GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ,GPIO_PIN_2);
- rcu_periph_clock_enable(RCU_GPIOD);//
- gpio_init(GPIOD, GPIO_MODE_IPD, GPIO_OSPEED_2MHZ,0x00FF);// PD0~PD7设置为输入
- gpio_bit_reset(GPIOD, GPIO_PIN_9);// PD9 设置为输出 CS_ALL
- gpio_init(GPIOD, GPIO_MODE_OUT_OD, GPIO_OSPEED_2MHZ,GPIO_PIN_9);
- rcu_periph_clock_enable(RCU_GPIOC);// PC设置为输出 PC4/PC5/PC10/PC11/PC12
- gpio_bit_set(GPIOC, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12);
- gpio_init(GPIOC, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ,GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12);
- rcu_periph_clock_enable(RCU_GPIOB);// PB设置为输出 PB0~PB1/PB5~PB9/PB12~PB15
- gpio_bit_set(GPIOB, 0xF3E3);
- gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ,0xF3E3);
- //rcu_periph_clock_enable(RCU_AF); // 必须要用这句,才能使用下面的remap;
- rcu_periph_clock_enable(RCU_GPIOA);// PA设置为输出 PA5~PA7/PA11~PA12
- //gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP,ENABLE); // 将PA15做为普通IO口,PA13 PA14为SWD
- gpio_bit_set(GPIOA, 0x18E0);
- gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ,0x18E0);
- rcu_periph_clock_enable(RCU_AF); /* AFIO时钟使能 */
- // for(i=0;i<4;i++){
- // printf("csport = %d, cspin= %d,extipt = %d, extipin=%d\r\n",g_extimsg.csGroup[i],\
- // g_extimsg.csPin[i],g_extimsg.extiPort[i],g_extimsg.extiPin[i]);
- // }
- //exti_deinit();
- /* enable and set key EXTI interrupt priority */
- //nvic_irq_enable(g_extimsg.extiIRQn, 2U, 0U); /* 设置优先级 */
- /* connect key EXTI line to key GPIO pin */
- //gpio_exti_source_select(g_extimsg.outputPort,g_extimsg.extiPinSource); /* 设置EXTI的触发源 */
- //exti_init(g_extimsg.extiLine, EXTI_INTERRUPT, EXTI_TRIG_BOTH); /*触发方式:上升沿 下降沿触发*/
- //exti_interrupt_flag_clear(g_extimsg.extiLine); /* 清除中断 */
- // exti_interrupt_enable(g_extimsg.extiLine);
- #if (0) //SEL_74CH165
- rcu_periph_clock_enable(RCU_GPIOD);// PD
- rcu_periph_clock_enable(RCU_GPIOE); // PE
- gpio_bit_set(GPIOD, 0xBCBC);
- gpio_init(GPIOD, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ,0xBCBC); // 设置输出
- gpio_bit_set(GPIOE, 0x79BC);
- gpio_init(GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ,0x79BC); // PE 设置输出
- gpio_init(GPIOD, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_2MHZ,0x4343);
- gpio_init(GPIOE, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_2MHZ,0x8643);
- rcu_periph_clock_enable(RCU_AF); /* AFIO时钟使能 */
- nvic_irq_enable(g_extimsg.extiIRQn, 2U, 0U); /* 设置优先级 */
- /* connect key EXTI line to key GPIO pin */
- gpio_exti_source_select(g_extimsg.outputPort,g_extimsg.extiPinSource); /* 设置EXTI的触发源 */
- exti_deinit();
- exti_init(g_extimsg.extiLine, EXTI_INTERRUPT, EXTI_TRIG_FALLING); /*触发方式:上升沿 下降沿触发*/
- exti_interrupt_flag_clear(g_extimsg.extiLine); /* 清除中断 */
- exti_interrupt_enable(g_extimsg.extiLine);
- #endif
- }
- /*------------------------------------------------------------------
- * 所有的片选置高或是低
- * ------------------------------------------------------------------*/
- void set_all_cs_port_status(FlagStatus status)
- {
- uint8_t i = 0;
- CSPortMsg *csMsg = NULL;
- if(status == SET){
- for(i=0;i<CS_GROUP_NUM;i++){
- csMsg = &g_csPortMsg[i];
- gpio_bit_set(csMsg->csPort,csMsg->csPin);
- csMsg = &g_csPortMsg[i+12];
- gpio_bit_set(csMsg->csPort,csMsg->csPin);
- }
- }
- else {
- for(i=0;i<CS_GROUP_NUM;i++){
- csMsg = &g_csPortMsg[i];
- gpio_bit_reset(csMsg->csPort,csMsg->csPin);
- csMsg = &g_csPortMsg[i+12];
- gpio_bit_reset(csMsg->csPort,csMsg->csPin);
- }
- }
- }
- /*----------------------------------------------------------------
- * 抬枪信号的初始化
- * PC8
- * ----------------------------------------------------------------*/
- void gun_single_init(void)
- {
- //初始化抬枪信号
- rcu_periph_clock_enable(RCU_GPIOC);
- gpio_init(TQ_PORT, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ,TQ_PIN); //PC8 IN1 抬枪信号1
- rcu_periph_clock_enable(RCU_AF); /* AFIO时钟使能 */
- nvic_irq_enable(EXTI5_9_IRQn, 3U, 2U); /* 设置优先级 */
- gpio_exti_source_select(GPIO_PORT_SOURCE_GPIOC,GPIO_PIN_SOURCE_8); /* 设置EXTI的触发源 */
- exti_init(EXTI_8, EXTI_INTERRUPT, EXTI_TRIG_BOTH); /*触发方式:上升沿 下降沿触发*/
- exti_interrupt_flag_clear(EXTI_8); /* 清除中断 */
- exti_interrupt_enable(EXTI_8);
- }
- /*----------------------------------------------------------------
- * 初始化板级控制管脚
- * PD14 : led_green PD15:leg_red
- * PE2: cs_en_all 所有片选使能
- * ---------------------------------------------------------------*/
- void board_gpio_init(void)
- {
- rcu_periph_clock_enable(RCU_GPIOC);
- rcu_periph_clock_enable(RCU_GPIOD);
- rcu_periph_clock_enable(RCU_GPIOE);
- gpio_bit_set(GPIOD, GPIO_PIN_15|GPIO_PIN_14);
- gpio_init(GPIOD, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ,GPIO_PIN_14|GPIO_PIN_15); //初始化LED管脚 PC13
- gpio_bit_reset(GPIOE, GPIO_PIN_2);
- gpio_init(GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ,GPIO_PIN_2); //cs_all 使能
- // 初始化抬枪信号
- gpio_init(TQ_PORT, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ,TQ_PIN); //PC8 IN1 抬枪信号1
- gpio_init(BM_PORT, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ,BM_PIN); //PC9 编码器
- }
- void init_fwdgt_timer(void)
- {
- // fwdgt_counter_reload();
- }
- void fwdgt_feed(uint32_t tickt)
- {
- if((tickt%2000)==0)
- fwdgt_counter_reload();
- }
- void board_init(void)
- {
- board_gpio_init();
- i2c_init();
- rct_init();
- init_flash();
- usart0_config();
- exti_msg_init();
- exti_gpio_init();
- init_gun_status();
- timer4_init();
- timer5_init();
- key_init();
- g_iDentity = IDENTITY_SLAVE; // 从
- g_devMsg.bHave4G = B4G_NOHAVE; // 无4G模块
- }
- /*--------------------------------------------------------------------------------
- * 上电时读取复位类型
- * -------------------------------------------------------------------------------*/
- uint32_t power_up_system_resettype(void)
- {
- uint32_t RestFlag = 0;
- if(RESET != rcu_flag_get(RCU_FLAG_EPRST)){ // 复位引脚复位 external PIN reset flag
- RestFlag |= RESET_PINRST;
- }
- if(RESET != rcu_flag_get(RCU_FLAG_PORRST)){ // 掉电复位 : power reset flag
- RestFlag |= RESET_PORRSTF;
- }
- if(RESET != rcu_flag_get(RCU_FLAG_SWRST)) { // 软件复位 : software reset flag
- RestFlag |= RESET_SFTRSTF;
- }
- if(RESET != rcu_flag_get(RCU_FLAG_FWDGTRST)){// 独立看门狗复位 : free watchdog timer reset flag
- RestFlag |= RESET_IWDGRSTF;//
- }
- if(RESET != rcu_flag_get(RCU_FLAG_WWDGTRST)) { //窗口看门狗复位 : window watchdog timer reset flag
- RestFlag |= RESET_IWDGRSTF;//
- }
- if(RESET != rcu_flag_get(RCU_FLAG_LPRST)){ // 低功耗复位: low-power reset flag
- RestFlag |= RESET_LPWRRSTF;//
- }
- rcu_all_reset_flag_clear();
- printf("复位类型 : %x\r\n",RestFlag);
- //存储复位 类型
- return RestFlag;
- }
- void uart_init(void)
- {
- dam_init_uart_485();
- usart_485_dma_init();
- }
|