久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

stm32庫開發之流水燈

作者:寒竹子   來源:用戶上傳   點擊數:  更新時間:2014年05月18日   【字體:

 /*****************主要的用戶自己編寫的文件*********************/

/**
  *********************************************************************
  * @file      : main.c
  * @author    : xr
  * @date      : 2014年5月13日08:31:58
  * @version   : V1.0
  * @brief     : STM32庫函數實現流水燈  STM32F103VE T6 MCU
  *********************************************************************
  * @attention
  * 實驗平臺   : 野火STM32-MINI開發板
  * 系統時鐘   : 采用默認的72MHZ
  * 硬件連接   : --------------------------
  *              |   PB0 -- LED1          |
  *              |   PC4 -- LED2          |
  *              |   PC3 -- LED3          |
  *            --------------------------
  * 庫版本    :  ST官方3.5.0版本
  *********************************************************************
  */
#include "stm32f10x.h" /* 上帝之手 STM32官方庫頭文件 */
#include "led.h"
 
static void Delay( __IO uint32_t counter );
 
/**
  * @brief    : 主函數
  * @param    : 無
  * @retval   : 無
  */
int main(void)
{
    /* 初始化LED控制端口 */
    Config_LED_GPIO();
    
    while (1)
    {
        LED1( ON ); //LED1亮
        Delay( 0x36EE80 );  //延時50ms, xms / 1000 * 72000000 ->HEX = 0x36EE80
        LED1( OFF ); //LED1滅
        Delay( 0x36EE80 );
        
        LED2( ON );
        Delay( 0x36EE80 );
        LED2( OFF );
        Delay( 0x36EE80 );
        
        LED3( ON );
        Delay( 0x36EE80 );
        LED3( OFF );
        Delay( 0x36EE80 );
    }
}
 
/**
  * @brief    : 不精確延時
  * @param    : None
  * @retval   : None
  */
static void Delay( __IO uint32_t counter )
{
    while ( counter-- );
}
 
/***********************END OF FILE*************************************************/
#ifndef _LED_H_
#define _LED_H_
 
#include "stm32f10x.h" //使用stm32庫
 
/**
  * 控制LED小燈的亮滅
  * 1 -- OFF
  * 0 -- ON
  */
#define OFF 1
#define ON 0
 
/* 帶參宏 如C++中的內聯函數一樣 */
#define LED1(a) if (a) \
                      GPIO_SetBits(GPIOB, GPIO_Pin_0);\
                      else     \
                      GPIO_ResetBits(GPIOB, GPIO_Pin_0)
                      
#define LED2(a) if (a) \
                      GPIO_SetBits(GPIOC, GPIO_Pin_4);\
                      else     \
                      GPIO_ResetBits(GPIOC, GPIO_Pin_4)
                      
#define LED3(a) if (a) \
                      GPIO_SetBits(GPIOC, GPIO_Pin_3);\
                      else     \
                      GPIO_ResetBits(GPIOC, GPIO_Pin_3)
                    
void Config_LED_GPIO(void);
 
#endif //_LED_H_
/********************************************END OF FILE******/
/**
  ************************************************************
  * @file    : led.c
  * @author  : xr
  * @date    : 2014年5月13日08:53:07
  * @version : V1.0
  * @brief   : led 應用函數庫
  ************************************************************
  * @attention
  * 實驗平臺 : 野火STM32-ISO-MIN開發板
  * 硬件連接 : --------------------------
  *            |   PB0 -- LED1          |
  *            |   PC4 -- LED2          |
  *            |   PC3 -- LED3          |
  *            --------------------------
  * 庫版本  :  ST官方3.5.0
  ************************************************************
  */
#include "led.h"
 
/**
  * @brief    :  配置LED用到的I/O口
  * @param    :  None
  * @retval   :  None
  */
void Config_LED_GPIO(void)
{
    /* 定義一個GPIO_InitTypeDef類型的結構體 */
    GPIO_InitTypeDef GPIO_InitStructure;
    
    /* 開啟GPIOB的外設時鐘 */
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );
    /* 開啟GPIOC的外設時鐘 */
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );
    /* 開啟LED引腳的外設時鐘 */
   // RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE );
    /* 選擇GPIOB引腳 */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    /* 設置引腳模式為通用強推挽輸出 */
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    /* 配置GPIOB引腳的速率為50M */
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    /* 調用STM32庫函數初始化GPIOB0 */
    GPIO_Init( GPIOB, &GPIO_InitStructure );
    
    /* 選擇GPIOC 3-4 */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;
    /* 調用庫函數初始化LED2 3的控制引腳 */
    GPIO_Init( GPIOC, &GPIO_InitStructure ); //以上已經設置了50M速率,故這里無需再設置!
    
    /* 關閉所有LED等 */
    GPIO_SetBits( GPIOB, GPIO_Pin_0 );
    
    GPIO_SetBits( GPIOC, GPIO_Pin_4 | GPIO_Pin_3 );
    
}
 
/******************************************END OF FILE***********/ 
關閉窗口
主站蜘蛛池模板: 国产高清精品在线 | 久久99精品久久久久 | 亚洲自拍一区在线观看 | 美女视频h | 91视频大全 | 日韩国产一区二区三区 | 欧美一级在线免费 | 久久精品亚洲一区二区三区浴池 | 久久久国产一区二区三区 | 欧美精品日韩精品国产精品 | 国产人成精品一区二区三 | a毛片| 羞羞视频在线网站观看 | 青青久在线视频 | 高清国产午夜精品久久久久久 | 全免费a级毛片免费看视频免费下 | 亚洲国产精品日本 | 日日日视频 | 国产精品视频免费播放 | 99热精品在线 | 视频一区在线观看 | 日韩视频在线免费观看 | 成人一级黄色毛片 | 美女天天操 | 日韩欧美高清 | 大象视频一区二区 | 欧美日本在线 | 国产一级毛片精品完整视频版 | 久久精品一区二区三区四区 | 国产韩国精品一区二区三区 | 久久欧美高清二区三区 | 国产乱码精品一区二区三区中文 | 日韩高清中文字幕 | 99综合在线 | av成年人网站 | 羞羞涩涩在线观看 | 岛国二区| 一级电影免费看 | 欧美一区二区大片 | 天天拍夜夜爽 | 亚洲成人高清 |