【iCore4 雙核心板_ARM】例程九:ADC實驗——電源監控

XiaomaGee發表於2017-08-18

實驗原理:  

  STM32內部整合三個12位ADC,iCore1S的所有電源經過電阻分壓或者直接

接入STM32的ADC的輸出通道內,輸入電流經過高階電流檢測晶片ZXCT1009F

輸入到ADC的輸入通道內,從而實現電源監控功能。

核心程式碼:

int main(void)
{

  /* USER CODE BEGIN 1 */
  int i;
  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_ADC3_Init();
  MX_USART6_UART_Init();

  /* USER CODE BEGIN 2 */
  usart6.initialize(115200);
    LED_GREEN_ON;
    usart6.printf("\x0c");                                                                                             
    usart6.printf("\033[1;32;40m");                                     
    usart6.printf(" Hello, I am iCore4!\r\n");    
    
  /* USER CODE END 2 */

 
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
        LED_GREEN_ON;
        HAL_Delay(500);
        LED_GREEN_OFF;
 
        for(i = 0;i < 5;i ++){
            my_adc.read(i);
        }
      
        usart6.printf(" ");
        usart6.printf("[I] %3.0fmA , ",my_adc.value[0] / 2* 1000.);
        usart6.printf("[V] %4.2fV, ",my_adc.value[1] * 6.);
        usart6.printf("[3.3V] %4.2fV, ",my_adc.value[2] * 2.);
        usart6.printf("[2.5V] %4.2fV,",my_adc.value[3] * 2.);
        usart6.printf("[1.2V] %4.2fV\r",my_adc.value[4]);

  }
  /* USER CODE END 3 */

}

原始碼下載連結:

連結:http://pan.baidu.com/s/1co5BdG 密碼:1x87

iCore4連結:

 

相關文章