| 
 
| F070读取ADC转换数据,两字节合为一个字节,加入异或校验。 跑一两个小时没问题。时间长了就出现死机情况。
 有时能恢复,有时就死掉了。不想加看门狗。
 使用内部时钟。
 
 
 while (1)
 {
 adc_temp_value =  (uint16_t) ReadConversionRegs();;
 if((adc_temp_value >= 0) &&(adc_temp_value < 32768))
 {
 adc_value_sum += adc_temp_value;
 nCount = nCount + 1 ;
 if(nCount >= ADC_Get_Num)
 {
 nCount = 0;
 dataSrc  = adc_value_sum ;
 dataDest = Slid_avg_filter(&slid_filter,dataSrc);//获取滤波数据
 send_adc_value[0] = dataDest >> 8;
 send_adc_value[1] = dataDest;
 send_adc_value[2] = send_adc_value[0] ^ send_adc_value[1];
 nUSART2_Rx_Flag = 0;
 if(Rx_temp[0] == 0xAA)
 {
 Rx_temp[0] = 0;
 HAL_IWDG_Refresh(&hiwdg);
 HAL_UART_Transmit(&huart2,(uint8_t *)send_adc_value,3,100);
 HAL_IWDG_Refresh(&hiwdg);
 HAL_Delay(5);
 }
 }
 adc_value_sum = 0;
 adc_value_average = 0;
 }
 
 }
 
 
 | 
 |