標題: STM32F407跑馬燈實驗程序 DS0和DS1交替閃爍 [打印本頁]

作者: ktye1    時間: 2017-12-4 13:52
標題: STM32F407跑馬燈實驗程序 DS0和DS1交替閃爍
F407 跑馬燈實驗工程,好大作用
本實驗將實現(xiàn)如下功能:本實驗通過代碼控制STM32F407開發(fā)板上的兩個LED:DS0和DS1交替閃爍,實現(xiàn)類似跑馬燈的效果。

單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"


  5. //跑馬燈實驗 -庫函數(shù)版本
  6. //STM32F4工程-庫函數(shù)版本               

  7. int main(void)
  8. {

  9.         delay_init(168);                  //初始化延時函數(shù)
  10.         LED_Init();                        //初始化LED端口
  11.         
  12.   /**下面是通過直接操作庫函數(shù)的方式實現(xiàn)IO控制**/        
  13.         
  14.         while(1)
  15.         {
  16.         GPIO_ResetBits(GPIOF,GPIO_Pin_9);  //LED0對應引腳GPIOF.9拉低,亮  等同LED0=0;
  17.         GPIO_SetBits(GPIOF,GPIO_Pin_10);   //LED1對應引腳GPIOF.10拉高,滅 等同LED1=1;
  18.         delay_ms(500);                     //延時300ms
  19.         GPIO_SetBits(GPIOF,GPIO_Pin_9);           //LED0對應引腳GPIOF.0拉高,滅  等同LED0=1;
  20.         GPIO_ResetBits(GPIOF,GPIO_Pin_10); //LED1對應引腳GPIOF.10拉低,亮 等同LED1=0;
  21.         delay_ms(500);                     //延時300ms
  22.         }
  23. }


  24. /**
  25. *******************下面注釋掉的代碼是通過 位帶 操作實現(xiàn)IO口控制**************************************
  26.         
  27. int main(void)
  28. {

  29.         delay_init(168);                  //初始化延時函數(shù)
  30.         LED_Init();                        //初始化LED端口
  31.   while(1)
  32.         {
  33.      LED0=0;                          //LED0亮
  34.            LED1=1;                                //LED1滅
  35.                  delay_ms(500);
  36.                  LED0=1;                                //LED0滅
  37.                  LED1=0;                                //LED1亮
  38.                  delay_ms(500);
  39.          }
  40. }
  41. **************************************************************************************************
  42. **/        
  43.         
  44. /**
  45. *******************下面注釋掉的代碼是通過 直接操作寄存器 方式實現(xiàn)IO口控制**************************************
  46. int main(void)
  47. {

  48.         delay_init(168);                  //初始化延時函數(shù)
  49.         LED_Init();                        //初始化LED端口
  50.         while(1)
  51.         {
  52.      GPIOF->BSRRH=GPIO_Pin_9;//LED0亮
  53.            GPIOF->BSRRL=GPIO_Pin_10;//LED1滅
  54.                  delay_ms(500);
  55.      GPIOF->BSRRL=GPIO_Pin_9;//LED0滅
  56.            GPIOF->BSRRH=GPIO_Pin_10;//LED1亮
  57.                  delay_ms(500);

  58.          }
  59. }         
  60. **************************************************************************************************
  61. **/        




  62. #include "sys.h"
  63. #include "delay.h"
  64. #include "usart.h"
  65. #include "led.h"


  66. //跑馬燈實驗 -庫函數(shù)版本
  67. //STM32F4工程-庫函數(shù)版本
  68. //淘寶店鋪:http://mcudev.taobao.com               

  69. int main(void)
  70. {

  71.         delay_init(168);                  //初始化延時函數(shù)
  72.         LED_Init();                        //初始化LED端口
  73.         
  74.   /**下面是通過直接操作庫函數(shù)的方式實現(xiàn)IO控制**/        
  75.         
  76.         while(1)
  77.         {
  78.         GPIO_ResetBits(GPIOF,GPIO_Pin_9);  //LED0對應引腳GPIOF.9拉低,亮  等同LED0=0;
  79.         GPIO_SetBits(GPIOF,GPIO_Pin_10);   //LED1對應引腳GPIOF.10拉高,滅 等同LED1=1;
  80.         delay_ms(500);                     //延時300ms
  81.         GPIO_SetBits(GPIOF,GPIO_Pin_9);           //LED0對應引腳GPIOF.0拉高,滅  等同LED0=1;
  82.         GPIO_ResetBits(GPIOF,GPIO_Pin_10); //LED1對應引腳GPIOF.10拉低,亮 等同LED1=0;
  83.         delay_ms(500);                     //延時300ms
  84.         }
  85. }


  86. /**
  87. *******************下面注釋掉的代碼是通過 位帶 操作實現(xiàn)IO口控制**************************************
  88.         
  89. int main(void)
  90. {

  91.         delay_init(168);                  //初始化延時函數(shù)
  92.         LED_Init();                        //初始化LED端口
  93.   while(1)
  94.         {
  95.      LED0=0;                          //LED0亮
  96.            LED1=1;                                //LED1滅
  97.                  delay_ms(500);
  98.                  LED0=1;                                //LED0滅
  99.                  LED1=0;                                //LED1亮
  100.                  delay_ms(500);
  101.          }
  102. }
  103. **************************************************************************************************
  104. **/        
  105.         
  106. /**
  107. *******************下面注釋掉的代碼是通過 直接操作寄存器 方式實現(xiàn)IO口控制**************************************
  108. int main(void)
  109. {

  110.         delay_init(168);                  //初始化延時函數(shù)
  111.         LED_Init();                        //初始化LED端口
  112.         while(1)
  113.         {
  114.      GPIOF->BSRRH=GPIO_Pin_9;//LED0亮
  115.            GPIOF->BSRRL=GPIO_Pin_10;//LED1滅
  116.                  delay_ms(500);
  117.      GPIOF->BSRRL=GPIO_Pin_9;//LED0滅
  118.            GPIOF->BSRRH=GPIO_Pin_10;//LED1亮
  119.                  delay_ms(500);
  120. ……………………

  121. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
F407 跑馬燈實驗.rar (506.11 KB, 下載次數(shù): 24)







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