This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

UART CLOSED AND OPEN (nrf52832 with sdk12.1.0)

we need to open uart 30s and close it 30s.there is our code:

if(sec_cnt==30)
{
	//printf("sec_cnt=30 is now\r\n");//zzq
	nrf_delay_ms(100);
	nrf_drv_uart_uninit(&m_dtm_uart_driver);
}

if(sec_cnt==60)
{
	sec_cnt=0;
	uart_init();
}

but when the sec_cnt==30, the uart is stop,but it cann't start at sec==60, how we need to do?

Parents
  • int main(void) { uint32_t err_code; uint32_t rct1_cnt; bool erase_bonds; OLDDATA_SYNC_FLAG=0; gpio_init(); uart_init(); saadc_init();

    	timers_init();//zzq
    	Int_Timer();	
    	//buttons_leds_init(&erase_bonds);
    	ble_stack_init();
    	gap_params_init();
    	services_init();
    	advertising_init();
    	conn_params_init();
    	application_timers_start();
    	
    	
      printf("\r\nUART Start!\r\n");//zzq
    	
    	err_code = ble_advertising_start(BLE_ADV_MODE_FAST);
    	APP_ERROR_CHECK(err_code);
    	// Enter main loop.
    	nrf_delay_ms(3000);
    	for (;;)
    	{
    				
    					//nrf_delay_ms(10);       //waiting a second		
    
    					if(g_secondcnt_detected ==true)
    					{
    					g_60seconds_cnt++;
    					g_90seconds_cnt++;	
    					sec_cnt++;					
    					g_secondcnt_detected=false;										
    					}
    
    					if(OLDDATA_SYNC_FLAG==1)
    					{
    					      read_flash_data(&g_bcg_startDate,&g_bcg_stopDate);
    					}
    					else
    					{	
    					   					
    						if((sec_cnt%2)==0)
    						{						
    						nrf_gpio_pin_toggle(LED_GREEN);
    						nrf_gpio_pin_toggle(LED_RED);
    						}
    						else if(sec_cnt==30)
    						{
    						nrf_drv_uart_uninit(&m_dtm_uart_driver);
    						}
    						else if(sec_cnt==60)
    						{
    						sec_cnt=0;
    						uart_init();
    						}
    
    					}
    
    				   send_data();
    				 if((OLDDATA_SYNC_FLAG==0)&&(g_90seconds_cnt>10))
    					{
    					send_heart();	 
            g_90seconds_cnt=0; 
    					}
    	      //  power_manage();
    	}
    	
    

    }

Reply
  • int main(void) { uint32_t err_code; uint32_t rct1_cnt; bool erase_bonds; OLDDATA_SYNC_FLAG=0; gpio_init(); uart_init(); saadc_init();

    	timers_init();//zzq
    	Int_Timer();	
    	//buttons_leds_init(&erase_bonds);
    	ble_stack_init();
    	gap_params_init();
    	services_init();
    	advertising_init();
    	conn_params_init();
    	application_timers_start();
    	
    	
      printf("\r\nUART Start!\r\n");//zzq
    	
    	err_code = ble_advertising_start(BLE_ADV_MODE_FAST);
    	APP_ERROR_CHECK(err_code);
    	// Enter main loop.
    	nrf_delay_ms(3000);
    	for (;;)
    	{
    				
    					//nrf_delay_ms(10);       //waiting a second		
    
    					if(g_secondcnt_detected ==true)
    					{
    					g_60seconds_cnt++;
    					g_90seconds_cnt++;	
    					sec_cnt++;					
    					g_secondcnt_detected=false;										
    					}
    
    					if(OLDDATA_SYNC_FLAG==1)
    					{
    					      read_flash_data(&g_bcg_startDate,&g_bcg_stopDate);
    					}
    					else
    					{	
    					   					
    						if((sec_cnt%2)==0)
    						{						
    						nrf_gpio_pin_toggle(LED_GREEN);
    						nrf_gpio_pin_toggle(LED_RED);
    						}
    						else if(sec_cnt==30)
    						{
    						nrf_drv_uart_uninit(&m_dtm_uart_driver);
    						}
    						else if(sec_cnt==60)
    						{
    						sec_cnt=0;
    						uart_init();
    						}
    
    					}
    
    				   send_data();
    				 if((OLDDATA_SYNC_FLAG==0)&&(g_90seconds_cnt>10))
    					{
    					send_heart();	 
            g_90seconds_cnt=0; 
    					}
    	      //  power_manage();
    	}
    	
    

    }

Children
No Data
Related