欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: STM32 GPIO口實(shí)驗(yàn) 每按一下開關(guān),兩個(gè)LED燈的亮滅狀態(tài)翻 [打印本頁]

作者: lxflxy    時(shí)間: 2020-6-13 20:23
標(biāo)題: STM32 GPIO口實(shí)驗(yàn) 每按一下開關(guān),兩個(gè)LED燈的亮滅狀態(tài)翻
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


   設(shè)計(jì)電路,在GPIOC口,分別接有一個(gè)開關(guān)K1和兩個(gè)指示燈LED1和LED2。兩個(gè)燈一亮一滅,每按一下開關(guān),兩個(gè)燈的亮滅狀態(tài)翻。
1.    main.c
#include "stm32f10x.h"
#include "led.h"
#include "key.h"
#include "sys.h"
int main(void)
{
   u8  kcnt=0;
   SystemInit();
    LED_Init();
    KEY_Init();
   
  while (1)
  {
      if(S1_DOWN)
          {
              delay_nms(10);
                  if(S1_DOWN)
                  {
                     while(S1_DOWN);
                     kcnt++;
                     }
                         if(kcnt%2==0)
                         {  
                                LED1_ON;
                                LED2_OFF;
                       
                         }
                         if(kcnt%2==1)
                         {   
                                LED1_OFF;
                                LED2_ON;
                       
                         }
                        
       }                                 
  }
}

2.    led.h
#ifndef __LED__H

#define __LED__H

#include "stm32f10x.h"

#include "sys.h"

#define LED1_ON GPIO_SetBits(GPIOC,GPIO_Pin_5)
#define LED1_OFF GPIO_ResetBits(GPIOC,GPIO_Pin_5)
#define LED2_ON GPIO_SetBits(GPIOC,GPIO_Pin_6)
#define LED2_OFF GPIO_ResetBits(GPIOC,GPIO_Pin_6)
void LED_Init(void);
void delay_nms(u16 time);
#endif

3.    key.h
#ifndef __KEY_H_
#define __KEY_H_

#include "stm32f10x.h"
#include "sys.h"
#define S1_DOWN GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10)==0
#define S1_UP GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10)==1
void KEY_Init(void);
#endif

4.    led.c
#include "stm32f10x.h"
#include "led.h"
void LED_Init(void)
{
     GPIO_InitTypeDef GPIO_InitStructure;
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6;
     GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
     GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
     GPIO_Init(GPIOC,&GPIO_InitStructure);
     GPIO_SetBits(GPIOC,GPIO_Pin_5|GPIO_Pin_6);
}
void delay_nms(u16 time)
{
   u16 i=0;
   while(time--)
   {
      i=12000;
      while(i--);
   }
}

5.key.c
#include "stm32f10x.h"
#include "key.h"
#include "delay.h"

void KEY_Init(void)
{
     GPIO_InitTypeDef  GPIO_InitStructure;
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;
     GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
     GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
     GPIO_Init(GPIOB,&GPIO_InitStructure);
     //GPIO_SetBits(GPIOB,GPIO_Pin_15);
}

51hei.png (81.17 KB, 下載次數(shù): 42)

51hei.png

51hei.png (6.34 KB, 下載次數(shù): 46)

51hei.png

實(shí)驗(yàn).7z

696.75 KB, 下載次數(shù): 26, 下載積分: 黑幣 -5






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1