找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10092|回復: 0
打印 上一主題 下一主題
收起左側

STM32F407跑馬燈實驗程序 DS0和DS1交替閃爍

[復制鏈接]
跳轉到指定樓層
樓主
ID:257164 發(fā)表于 2017-12-4 13:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
2黑幣
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)


評分

參與人數(shù) 2黑幣 +55 收起 理由
lumancy + 5 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表