打印
[应用相关]

STM32之点亮LED灯程序

[复制链接]
827|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
原理图:


程序:
#include "stm32f10x.h"

GPIO_InitTypeDef GPIO_InitStructure;
#define LED1_ON GPIO_SetBits(GPIOB, GPIO_Pin_5);  
//#define LED1_ON GPIO_WriteBit(GPIOB, GPIO_Pin_5, Bit_SET);


#define LED1_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_5);
//#define LED1_OFF GPIO_WriteBit(GPIOB, GPIO_Pin_5, Bit_RESET) ;

#define LED2_ON GPIO_SetBits(GPIOD, GPIO_Pin_6);  
#define LED2_OFF GPIO_ResetBits(GPIOD, GPIO_Pin_6);

#define LED3_ON GPIO_SetBits(GPIOD, GPIO_Pin_3);  
#define LED3_OFF GPIO_ResetBits(GPIOD, GPIO_Pin_3);  

void RCC_Configuration(void);
void LED_Config(void);
void Delay(__IO uint32_t nCount);

/****************************************************************************
* 名    称:void LED_Config(void)
* 功    能:LED 控制初始化函数



输入
****************************************************************************/

void LED_Config(void){
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOD , ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;     //LED1  V6   //将V6,V7,V8 配置为通用推挽输出  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //口线翻转速度为50MHz
  GPIO_Init(GPIOB, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_3; //LED2, LED3 V7 V8
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
//  GPIO_Init(GPIOD, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;      //LCD背光控制
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  GPIO_ResetBits(GPIOD, GPIO_Pin_13);              //LCD背光关闭

}

沙发
huangcunxiake|  楼主 | 2017-1-13 22:15 | 只看该作者
/****************************************************************************
* 名    称:int main(void)
* 功    能:主函数

****************************************************************************/
int main(void)
{
  RCC_Configuration();   //系统时钟配置
  LED_Config();//LED控制配置
  while (1)
  {
  LED1_ON; LED2_OFF; LED3_OFF;//LED1亮  LED2,LED3灭(LED2,LED3 仅V5  V3,V2,V2.1板有)
    Delay(0xAFFFF);
LED1_OFF; LED2_ON; LED3_OFF;//LED2亮  LED1,LED3灭(LED2,LED3 仅V5  V3,V2,V2.1板有)
Delay(0xAFFFF);
LED1_OFF; LED2_OFF; LED3_ON;//LED3亮  LED1,LED2灭(LED2,LED3 仅V5  V3,V2,V2.1板有)
Delay(0xAFFFF);   
  }
}

使用特权

评论回复
板凳
huangcunxiake|  楼主 | 2017-1-13 22:17 | 只看该作者
/****************************************************************************
* 名    称:void RCC_Configuration(void)
* 功    能:系统时钟配置为72MHZ
* 入口参数:无
* 出口参数:无
* 说    明:
* 调用方法:无
****************************************************************************/
void RCC_Configuration(void)
{   
  SystemInit();
}

/****************************************************************************
* 名    称:void Delay(__IO uint32_t nCount)
* 功    能:延时函数
* 入口参数:无
* 出口参数:无
* 说    明:
* 调用方法:无
****************************************************************************/
void Delay(__IO uint32_t nCount)
{
   for(; nCount != 0; nCount--);
}


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

204

主题

3476

帖子

10

粉丝