神秘的仪器,新的代码,背后的真相到底是。。。。

欢迎收看今天的“小狮子,带侦探”!上次我们在指挥官的卧室里发现了散发诡异光芒的小灯和一串神秘的代码。今天我们在指挥部后面的小花园里又发现了一个奇怪的装置,这个装置被遗弃在了灌木丛中,但是!我,最可爱的人型s.a.t.8依旧找到了这重要的线索!话不多说,让我们康康今天的带发现吧!

#include "stm32f10x.h"
#include "led.h"
void Delay(uint32_t jun){
  for(;jun!=0;--jun);
}
int main(void){
int a=1,b=0;
  led_gpio_sb();
  led_gpio_yw();
while(1){
  while(a==1){
    if(key_scan(K1_GPIO_PORT,LED_K1_GPIO_PIN)==KEY_ON||b==1){
      led_gpio_config();
      led_gpio_JUN();	
      led_gpio_BIAN();
      while(a==1){		
    LED_G(ON);	 
    LED_B(OFF);	
    LED_R(OFF);
    Delay(0xFFFFF);	
        if(key_scan(K2_GPIO_PORT,LED_K2_GPIO_PIN)==KEY_ON){
      a=0;		
        LED_G(OFF);	 
        LED_B(OFF);
        LED_R(OFF);
      break;}
        LED_G(OFF);	 
        LED_B(ON);
        LED_R(OFF);
        Delay(0xFFFFF);	
        if(key_scan(K2_GPIO_PORT,LED_K2_GPIO_PIN)==KEY_ON){
      a=0;		
        LED_G(OFF);	 
        LED_B(OFF);
        LED_R(OFF);
      break;}
    LED_G(OFF);	 
    LED_B(OFF);
    LED_R(ON);
    Delay(0xFFFFF);	
      if(key_scan(K2_GPIO_PORT,LED_K2_GPIO_PIN)==KEY_ON){
      a=0;		
        LED_G(OFF);	 
        LED_B(OFF);
        LED_R(OFF);
      break;
        }     
      }
    }	
if(a==0) break;
  
  }
    if(key_scan(K1_GPIO_PORT,LED_K1_GPIO_PIN)==KEY_ON){
    a=1;
      b=1;
    
  }
}
}
#include "led.h"
void led_gpio_config(void){
  
  GPIO_InitTypeDef       GPIO_InitStruct;

  RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE);
  
  GPIO_InitStruct.GPIO_Pin=LED_G_GPIO_PIN;
  
  GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
  
  GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    
  GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct);
  
}
void led_gpio_JUN(void){
  
  GPIO_InitTypeDef       GPIO_InitStruct;
  
  RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE);
    
  GPIO_InitStruct.GPIO_Pin=LED_B_GPIO_PIN ;
    
  GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
  
  GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
  
  GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct);
  
}
void led_gpio_BIAN(void){
  
  GPIO_InitTypeDef       GPIO_InitStruct;
  
  RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE);
  
  GPIO_InitStruct.GPIO_Pin=LED_R_GPIO_PIN ;
  
  GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
  
  GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
  
  GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct);
  
}

void led_gpio_sb(void){
  
  GPIO_InitTypeDef       GPIO_InitStruct;
  
  RCC_APB2PeriphClockCmd(K1_G_GPIO_CLK, ENABLE);
  
  GPIO_InitStruct.GPIO_Pin=LED_K1_GPIO_PIN ;
  
  GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;
  
  GPIO_Init(K1_GPIO_PORT, &GPIO_InitStruct);
  
}

void led_gpio_yw(void){
  
  GPIO_InitTypeDef       GPIO_InitStruct;
  
  RCC_APB2PeriphClockCmd(K2_G_GPIO_CLK, ENABLE);
  
  GPIO_InitStruct.GPIO_Pin=LED_K2_GPIO_PIN ;
  
  GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;
    
  GPIO_Init(K2_GPIO_PORT, &GPIO_InitStruct);
  
}

uint8_t key_scan(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin){
  if(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin)==KEY_ON){
    while(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin)==KEY_ON);
    return KEY_ON;
  }
  else return KEY_OFF;
}
#ifndef led_h
#define led_h
#include "stm32f10x.h"
#define LED_G_GPIO_PIN     GPIO_Pin_0
#define LED_R_GPIO_PIN     GPIO_Pin_5 
#define LED_B_GPIO_PIN     GPIO_Pin_1 
#define LED_G_GPIO_PORT    GPIOB
#define K1_GPIO_PORT    GPIOA
#define K2_GPIO_PORT    GPIOC
#define LED_G_GPIO_CLK     RCC_APB2Periph_GPIOB
#define K1_G_GPIO_CLK     RCC_APB2Periph_GPIOA
#define K2_G_GPIO_CLK     RCC_APB2Periph_GPIOC
#define LED_K1_GPIO_PIN     GPIO_Pin_0
#define LED_K2_GPIO_PIN     GPIO_Pin_13
#define ON   1
#define OFF  0
#define LED_G(JUN) if(JUN)GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);else GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);
#define LED_B(JUN) if(JUN)GPIO_ResetBits(LED_G_GPIO_PORT, LED_B_GPIO_PIN);else GPIO_SetBits(LED_G_GPIO_PORT, LED_B_GPIO_PIN);
#define LED_R(JUN) if(JUN)GPIO_ResetBits(LED_G_GPIO_PORT, LED_R_GPIO_PIN);else GPIO_SetBits(LED_G_GPIO_PORT, LED_R_GPIO_PIN);
void led_gpio_config(void);
void led_gpio_JUN(void);
void led_gpio_BIAN(void);
void led_gpio_sb(void);
void led_gpio_yw(void);
uint8_t key_scan(GPIO_TypeDef *GPIO,uint16_t GPIO_Pin);
#define KEY_ON 1
#define KEY_OFF 0
#define LED_G_TOGGLE {LED_G_GPIO_PORT->ODR ^=LED_G_GPIO_PIN;}
#define LED_R_TOGGLE {LED_G_GPIO_PORT->ODR ^=LED_R_GPIO_PIN;}
#define LED_B_TOGGLE {LED_G_GPIO_PORT->ODR ^=LED_B_GPIO_PIN;}
#endif

乍一看,这个装置没什么亮点,但是当我们打开开关摁下key1按钮后发现这个装置上的led灯竟然开始闪烁了,当我们再摁下key2按钮后发现led灯竟然熄灭了。这次的发现比上次的更加劲爆,很显然指挥官的失踪并不是无端发生的,这次的装置和上次的装置一定是指挥官留下的线索。后勤官格林娜知道后第一时间来到了现场,在看过代码后,格林娜小姐说这次的代码和上次的有明显的不同,因为上次只有输出而这次却有了输入,通过对输入检测的编写可以让设备接受到信号并作出预先设计好的反应。

格林娜小姐在分析完决定调用格里芬指挥部的力量进行地毯式搜索,想要知道下一次的线索吗?那就继续关注“小狮子,带侦探”吧!我是最可爱的人形s.a.t.8,期待与您分享关于指挥官失踪的第一手资讯。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

2 × 5 =