找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14604|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32控制LED燈閃爍的程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:237810 發(fā)表于 2017-10-8 15:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是我修改的一部分主程序里的點(diǎn)亮LED的程序

單片機(jī)源程序如下:
  1. /********************************************************************************/
  2. /*  2017年9月15日STM32F103ZET6最小系統(tǒng)開發(fā)板  LED3閃爍          PE5-->LED3                        */
  3. /********************************************************************************/
  4. #include "stm32f10x_lib.h"                  

  5. ErrorStatus HSEStartUpStatus;                 
  6. void Delay(vu32 nTime);
  7. void RCC_Configuration(void);
  8. void GPIO_Configuration(void);
  9.        
  10. int main(void)
  11. {
  12.           RCC_Configuration();                        /* 配置系統(tǒng)時(shí)鐘 */
  13.           GPIO_Configuration();                        /* 配置GPIO  IO口初始化 */

  14.   
  15.         while(1)
  16.     {
  17.            GPIO_ResetBits(GPIOB,GPIO_Pin_5);
  18.            Delay(0XFFFFF);
  19.               GPIO_SetBits(GPIOB,GPIO_Pin_5);
  20.           Delay(0XFFFFF);
  21.       GPIO_ResetBits(GPIOE,GPIO_Pin_5);
  22.           Delay(0XFFFFF);
  23.              GPIO_SetBits(GPIOE,GPIO_Pin_5);
  24.           Delay(0XFFFFF);
  25.            GPIO_ResetBits(GPIOE,GPIO_Pin_6);
  26.           Delay(0XFFFFF);
  27.              GPIO_SetBits(GPIOE,GPIO_Pin_6);
  28.           Delay(0XFFFFF);
  29.           
  30.     }      
  31. }

  32. /*******************************************************************************
  33. * Function Name  : RCC_Configuration
  34. * Description    : Configures the different system clocks.
  35. *******************************************************************************/
  36. void RCC_Configuration(void)
  37. {
  38.           RCC_DeInit();                                                 /* RCC system reset(for debug purpose) */                 
  39.           RCC_HSEConfig(RCC_HSE_ON);                 /*打開外部高速晶振(HSE)*/

  40.   /*等待HSE起振 該函數(shù)將等待直到HSE就緒,或者在超時(shí)的情況下退出*/
  41.           HSEStartUpStatus = RCC_WaitForHSEStartUp();
  42.   if(HSEStartUpStatus == SUCCESS)
  43.   {
  44.     RCC_HCLKConfig(RCC_SYSCLK_Div1);                   /* 設(shè)置AHB時(shí)鐘(HCLK),AHB時(shí)鐘 = 系統(tǒng)時(shí)鐘 */
  45.     RCC_PCLK2Config(RCC_HCLK_Div1);                    /* 設(shè)置高速AHB時(shí)鐘(PCLK2),APB2時(shí)鐘 = HCLK */
  46.     RCC_PCLK1Config(RCC_HCLK_Div2);                           /* 設(shè)置低速AHB時(shí)鐘(PCLK1),APB1時(shí)鐘 = HCLK/2 */
  47.     FLASH_SetLatency(FLASH_Latency_2);                /* Flash 2 wait state */
  48.     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /* 使能或者失能預(yù)取指緩存,預(yù)取指緩存使能 */
  49.     /*        設(shè)置PLL時(shí)鐘源及倍頻系數(shù)PLL的輸入時(shí)鐘 = HSE時(shí)鐘頻率 PLL輸入時(shí)鐘 x 9 */
  50.     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
  51.     RCC_PLLCmd(ENABLE);                                                /*使能PLL*/

  52.     /* Wait till PLL is ready  檢查指定的RCC標(biāo)志位設(shè)置與否PLL就緒 */
  53.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
  54.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);        /* 設(shè)置系統(tǒng)時(shí)鐘(SYSCLK)選擇PLL作為系統(tǒng)時(shí)鐘 */
  55.     /* Wait till PLL is used as system clock source 返回用作系統(tǒng)時(shí)鐘的時(shí)鐘源0x08:PLL作為系統(tǒng)時(shí)鐘 */
  56.     while(RCC_GetSYSCLKSource() != 0x08);
  57.   }                                       
  58.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE, ENABLE);         /*        定義輸出端口*/
  59. }

  60. /*******************************************************************************
  61. * Function Name  : GPIO_Configuration         PB5-->LD2  PE5-->LD3  PE6-->LD4
  62. * Description    : Configures the different GPIO ports.
  63. *******************************************************************************/
  64. void GPIO_Configuration(void)
  65. {
  66.           GPIO_InitTypeDef GPIO_InitStructure;
  67.                                                                 /* PB5口配置為輸出 */
  68.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  69.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  70.           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  71.           GPIO_Init(GPIOB, &GPIO_InitStructure);

  72.                                                                 /* PE5~PE6口配置為輸出 */
  73.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6;
  74.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  75.           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  76.           GPIO_Init(GPIOE, &GPIO_InitStructure);

  77. }

  78. void Delay(vu32 nCount)                                  /* 延時(shí) */
  79. {
  80.   for(; nCount != 0; nCount--);
  81. }
  82. //while(1)
  83. //{
  84. //    GPIOE->BSSRR = 0xffdf;
  85.   //        Delay(5000000);
  86.         //GPIOE->ODR = 0xffff;                   /* PE5=1 --> 熄滅LED3 */
  87.         //Delay(5000000);
  88.              //
  89. //}
  90. //
復(fù)制代碼

所有資料51hei提供下載:
LED234.rar (220.28 KB, 下載次數(shù): 60)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表