اموزش کار با وقفه های خارجی میکروکنترلر ARM

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


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

همانطور که در تصویر زیر مشاهده می­کنید، در ابتدای برنامه کتابخانه­های مربوطه فراخوانی شده­اند. سپس در قسمت دوم پیکربندی مربوط بهLED  ها انجام شده است.در تابع STM_EVAL_LEDInit() کلاک و پیکربندی مربوط به LED ها  انجام می­گیرد. در قسمت سوم پیکربندی وقفه­ی خارجی انجام می­شود که روتین وقفه در داخل فایل stm32f10x_it و در تابعEXTI9_5_IRQHandler()  طبق شکل زیر قرار دارد.

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


/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
intmain(void)
{
  /*!< At this stage the microcontroller clock setting is already configured,
       this is done through SystemInit() function which is called from startup
       file (startup_stm32f10x_xx.s) before to branch to application main.
       To reconfigure the default setting of SystemInit() function, refer to
       system_stm32f10x.c file
     */
         
  /* Initialize LED1 and Key Button mounted on STM3210X-EVAL board */
  STM_EVAL_LEDInit(LED1);
  STM_EVAL_LEDInit(LED2);
  STM_EVAL_LEDInit(LED3);
  STM_EVAL_LEDInit(LED4);
  /* Configure Pc.6  in interrupt mode */
  EXTI9_5_Config();
          
  while(1)
  {
  }
}
/**
  * @brief  This function handles External lines 9 to 5 interrupt request.
  * @param  None
  * @retval None
  */
voidEXTI9_5_IRQHandler(void)
{

  if(EXTI_GetITStatus(EXTI_Line6) != RESET)
  {
        
    /* Toggle LED2 */
     STM_EVAL_LEDToggle(LED1);
     STM_EVAL_LEDToggle(LED2);
     STM_EVAL_LEDToggle(LED3);
     STM_EVAL_LEDToggle(LED4);
    /* Clear the  EXTI line 9 pending bit */
    EXTI_ClearITPendingBit(EXTI_Line6);
  }

}

 

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

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

 

 

 

 

 

 

 

 

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

 

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



/
  * @brief  This function handles External lines 9 to 5 interrupt request.
  * @param  None
  * @retval None
  */
voidEXTI9_5_IRQHandler(void)
{

  if(EXTI_GetITStatus(EXTI_Line6) != RESET)
  {
        
    /* Toggle LED2 */
     STM_EVAL_LEDToggle(LED1);
     STM_EVAL_LEDToggle(LED2);
     STM_EVAL_LEDToggle(LED3);
     STM_EVAL_LEDToggle(LED4);
    /* Clear the  EXTI line 9 pending bit */
    EXTI_ClearITPendingBit(EXTI_Line6);
  }

}
 

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

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

 

 

 

 

 

 

 

 

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

 

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



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

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

 

 

 

 

 

 

 

 

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

 

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



Tags: , , ,