欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STM32F407跑馬燈實驗 [打印本頁]

作者: h00000    時間: 2020-5-26 15:30
標題: STM32F407跑馬燈實驗
跑馬燈實驗
一、實驗目的與要求

1、熟悉GPIO的使用方法,熟悉HAL固件庫中GPIO庫函數的使用方法

2、熟悉Timer2的使用方法,熟悉HAL固件庫中通用定時器(TIM) 庫函數的使用方法

3、熟悉嵌套向量中斷控制器(NVIC),熟悉STM32固件庫中NVIC庫函數的使用方法,進一步熟悉中斷程序編寫

二、實驗設備

SUN ESMC01實驗儀(含STM32F407模塊)一套、ARM仿真器一套、PC機一臺

三、實驗內容

1、編寫程序:控制STM32F407核心板上的4個指示燈DS1~DS4,,循環點亮,瞬間只有一個燈亮,使用Timer2產生延時。

2、觀察實驗結果,驗證程序是否正確。

基于延時

while (1)

  {     

        //LED1 turned on, LED4 turned off

        HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0, GPIO_PIN_SET);

        HAL_Delay(1000);  

        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0,GPIO_PIN_RESET);               

        // LED2 turned on, LED1 turned off

        HAL_GPIO_WritePin(GPIOC,GPIO_PIN_1, GPIO_PIN_SET);

        HAL_Delay(1000);

        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_RESET);

        // LED3 turned on, LED2 turned off

        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2,GPIO_PIN_SET);

        HAL_Delay(1000);

        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2,GPIO_PIN_RESET);              

        // LD4 turned on, LD3 turned off

        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3,GPIO_PIN_SET);

        HAL_Delay(1000);

        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3,GPIO_PIN_RESET);              



  }

基于計時器

intmain(void)

{

  int   t= 0;

  lighton = 0;              //500mssign

  HAL_Init();

  SystemClock_Config();

  MX_GPIO_Init();

  MX_TIM2_Init();

  __HAL_TIM_CLEAR_IT(&htim2,TIM_IT_UPDATE);//清除中斷

  HAL_TIM_Base_Start_IT(&htim2) ;           //啟動時鐘

  while (1)

  {

        if (lighton)

    {

        lighton = 0;                       //500ms sign

        switch(t)

        {

        case 0:

          HAL_GPIO_WritePin(GPIOC,GPIO_PIN_3, GPIO_PIN_RESET);     //LED4off

          HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0, GPIO_PIN_SET);      //LED1 on

          break;

        case 1:

          HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0, GPIO_PIN_RESET);     //LED1off

          HAL_GPIO_WritePin(GPIOC,GPIO_PIN_1, GPIO_PIN_SET);      //LED2 on

          break;

        case 2:

          HAL_GPIO_WritePin(GPIOC,GPIO_PIN_1, GPIO_PIN_RESET);     //LED2off

          HAL_GPIO_WritePin(GPIOC,GPIO_PIN_2, GPIO_PIN_SET);       //LED3 on

          break;

        case 3:

          HAL_GPIO_WritePin(GPIOC,GPIO_PIN_2, GPIO_PIN_RESET);     //LED3off

          HAL_GPIO_WritePin(GPIOC,GPIO_PIN_3, GPIO_PIN_SET);       //LED4 on

          break;

        }

        t++;

        t &= 0x3;

    }

  }

}



voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

{

    if (htim == &htim2)

    {

        lighton = 1;

    }








歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1