راه اندازی ADC با ARM STM32(قسمت دوم)

 


مشاهده ی فیلم های اموزشی بیشتر درباره ی مبدل انالوگ دیجیتال


هدف از مثال زیر این است که شما با مبدل آنالوگ به دیجیتال ADC)) و طریقه­ ی راه­اندازی آن در میکروکنترلرهای ARM   آشنا شوید.


شرح کلی برنامه

در مثال موجود در تابع  ADC_AnalogWatchdog_Intial می­توانید دو مقدار برای حد بالا و پایین در نظر بگیرید تا وقتی­که مقدار اندازه­ گیری شده از دو مقدار بالاتر رفت یا پایین تر آمد یک وقفه ایجاد کرده و بدین ترتیب شما را مطلع می­­کند. از جمله از کاربرد­های AnolaogWatchfog  در اندازه­گیری و کنترل دما است که می­خواهیم دمای سیستم از مقدار مجازی تجاوز نکند.

نکته : روتین وقفه داخل فایل stm32f10x_it قرار دارد.


سخت افزار

برای تست این برنامه می­توانید از یک پتانسیومتر استفاده نمائید و آن را به ADC1 متصل کنید وبا تغییر پتانسیومتر نتیجه را مشاهده کنید.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


آشنایی و کار با برنامه

ابتدا برنامه را با نرم افزار Keil باز کنید.

 

 

 

 

 

 

 

 

تغذیه 5 ولت را به برد آموزشی متصل کنید و بعد از اینکه پروگرامر ST-LINK را به برد متصل نمودید؛ برنامه را با استفاده از دکمه ­ی Download    پروگرم نمائید.

 

 


توضیحات مربوط به برنامه

ابتدا کتابخانه­ های مربوطه فراخوانی شده­ اند.

/* Includes -------------------------------*/
#include "stm32f10x.h"
#include "bsp.h

 

در تابع اصلی (main) ابتدا کلاک مربوط به GPIO  و ADC روشن شده، سپس وقفه­ی مربوط به ADC  فعال می­شود. همینطور پیکربندی مربوط به GPIO(ADC) انجام می­گیرد؛ همچنین پیکربندیled  و   ADC انجام می­شود.

/* Private functions ---------------------------------------------------------*/
/**
  * @brief   Main program
  * @param  None
  * @retval None
  */
intmain(void)
{
  /* System clocks configuration ----------------------------------*/
  RCC_Configuration();

  /* NVIC configuration --------------------------------------------*/
  NVIC_Configuration();

  /* GPIO configuration ------------------------------------------*/
  GPIO_Configuration();

  /* Configure LED GPIO Pin ----------------------------------- */
  STM_EVAL_LEDInit(LED1);
  
    /* Configure ADC  ------------------------------------------ */
  ADC_AnalogWatchdog_Intial();

  while(1)
  {
  }

 

دانلود مثال ها و pdf این مقاله



 

Tags: , ,