找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6907|回復: 2
打印 上一主題 下一主題
收起左側(cè)

STM32控制4個LED燈循環(huán)點亮源程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:780937 發(fā)表于 2020-6-16 13:22 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
電路原理圖如下:



單片機源程序如下:
  1. #include "led.h"               

  2. void Delay(unsigned int count);                                                  //延時函數(shù)

  3. //int main(void)
  4. //{                 
  5. //        
  6. //        LED_Init();         //初始化與LED連接的硬件接口
  7. //    while(1)
  8. //        {
  9. //           u32 LED=0x00000001;//設置初始控制碼        
  10. //           //逐一點亮
  11. //           for(u8 i=0;i<4;i++)
  12. //           {
  13. //                        GPIOC->ODR&=~LED;        //向GPIOC口寫點亮LED的控制碼
  14. //                        Delay(30);
  15. //                        LED<<=1;        //上一個控制碼左移一位,獲得下一個控制碼
  16. //            }
  17. //        Delay(30);
  18. //                LED>>=1;
  19. //           // 逐一熄滅
  20. //           for(u8 j=0;j<4;j++)
  21. //           {
  22. //                        GPIOC->ODR|=LED;        //向GPIOC口寫點亮LED的控制碼
  23. //                        Delay(30);
  24. //                        LED>>=1;        //上一個控制碼左移一位,獲得下一個控制碼
  25. //            }
  26. //            Delay(30);
  27. //        }
  28. //}

  29. void Delay(unsigned int count)                                                  //延時函數(shù)
  30. {
  31.         unsigned int i;
  32.         for(;count!=0;count--)
  33.         {
  34.                 i=5000;
  35.                 while(i--);
  36.         }        
  37. }


  38. int main(void){
  39.     LED_Init();         //初始化與LED連接的硬件接口
  40.     u8 LED=0X00;
  41.         while(1){
  42.                 for(u8 i=0;i<4;i++)
  43.                 {
  44.                         LED++;        //00000001   00000011
  45.                         GPIOC->BRR = LED;//pc0=0 PC1=0
  46.                         Delay(20);
  47.                         LED<<=1;//LED依次點亮        00000010
  48.                 }
  49.                 LED++;        
  50.                 GPIOC->BRR = LED;
  51.                 Delay(20);
  52.                 LED=0XF8;
  53.            // 逐一熄滅
  54.            for(u8 j=0;j<4;j++)
  55.            {
  56.                         GPIOC->BSRR=LED;        //向GPIOC口寫點亮LED的控制碼
  57.                         Delay(20);
  58.                         LED>>=1;        //上一個控制碼左移一位,獲得下一個控制碼
  59.             }
  60.             Delay(20);
  61.         }
  62. }
復制代碼

Keil代碼與Proteus8.8仿真下載:
LED4.7z (191.99 KB, 下載次數(shù): 49)

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

使用道具 舉報

沙發(fā)
ID:805791 發(fā)表于 2020-7-20 12:51 | 只看該作者
可以使用PB口嗎?需要改哪些地方。
回復

使用道具 舉報

板凳
ID:785125 發(fā)表于 2020-7-23 08:24 | 只看該作者
似乎把GPIOC改成GPIOB就行
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

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