新的线索!不为人知的秘密竟然在这儿被发现。。。。。。。

欢迎来到今天的“小狮子 带侦探”,我是最可爱的战术人形s.a.t.8!今天我们在指挥官的卧室里找到一块奇怪的电路板,上面的led灯在闪烁着诡异的光芒。在把电路板送给后勤官格林娜做了简单的分析后发现了如下代码:

#include "stm32f10x.h"
#include "led.h"
void Delay(uint32_t jun){
  for(;jun!=0;--jun);
}
int main(void){
   led_gpio_config();
   led_gpio_JUN();
   led_gpio_BIAN();
  while (1)
  {
   LED_G(ON);	 
    LED_B(OFF);
    
    LED_R(OFF);
   Delay(0xFFFFF);	
   LED_G(OFF);	 
    LED_B(ON);
    LED_R(OFF);
    Delay(0xFFFFF);	
    LED_G(OFF);	 
    LED_B(OFF);
    LED_R(ON);
    Delay(0xFFFFF);	
    LED_G(ON);	 
    LED_B(ON);
    LED_R(OFF);
    Delay(0xFFFFF);	
    LED_G(ON);	 
    LED_B(OFF);
    LED_R(ON);
    Delay(0xFFFFF);	
    LED_G(ON);	 
    LED_B(OFF);
    LED_R(ON);
    Delay(0xFFFFF);	
    LED_G(OFF);	 
    LED_B(ON);
    LED_R(ON);
    Delay(0xFFFFF);	
    LED_G(ON);	 
    LED_B(ON);
    LED_R(ON);
    Delay(0xFFFFF);	
  }
}
#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);
  
}
#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 LED_G_GPIO_CLK     RCC_APB2Periph_GPIOB
#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);
#endif

后勤官格林娜表示她曾经有在军校时有学过代码,这里面的意思好像是先对官方固件库中的变量进行声明,再自己写一个函数并将刚才的声明过的变量写进去,最后再将写好的函数放到main函数中,以此来完成开关电路板芯片中的时钟,决定gpio输入输出模式和速度以及哪个引脚需要输出高低点平。最后通过while函数和delay进行闪烁。

在指挥官卧室发现的电路板的工作原理知道了,但指挥官为什么要干这件事呢?这里的代码和上次在指挥官办公室发现的又有什么关系呢?想知道真相的观众们敬请期待下一次的“小狮子 带侦探”!

YS-V0.7语音识别模块的编译与下载

YS-V0.7模块基于STC11芯片制版,下载示例文件

提取码:efnc

在编译之前,请先确保您的Keil5已经安装过STC的头文件,以下简单介绍安装方法


-安装Keil5 C51支持库

下载地址,提取码:utrz

打开后一直确定安装即可

-安装STC头文件库

首先通过百度网盘下载所需软件,下载地址,提取码:k14l

双击打开 stc-isp-15xx-v6.86s.exe

点击 添加型号和头文件到Keil中

并在弹出界面中选择你的Keil5安装目录

笔者的安装目录示例

 安装成功后提示信息

-编译项目

打开/keil4 APP/下的YS-V0.7.uvproj文件

点击Build(如果不更改内容信息的话可以跳过这一步,直接使用预编译好的bin文件)

-烧录进芯片

打开之前下载的 stc-isp-15xx-v6.86s.exe

将YS-V0.7模块与USB转TTL模块相链接,也可使用开发板板子上的usb转ttl模块,把野火板子上的PA9与PA10的跳帽拔掉再接即可

与usb转ttl接线示例

  • 模块上     GDN—–>GDN    USB转TTL模块
  •                 RXN—–>TXN
  •                 TXN—–>RXN
  •                 5V  —–>5V

将USB头接上电脑,切到STC-ISP界面

将单片机型号改为STC11L08XE

更改最大波特率为9600

打开编译好的文件之后,点击下载编程

看到正在检测目标单片机后,拔下GDN线再重新接上GDN线

程序已经下载成功了

与开发版通信的部分将会在后续给出