SM74HC595D电路级联教程

1简述

SM74HC595D 是一种具有8 位锁存、8 位串行输入、 8 位串/并行输出、 串—并移位寄存器和三态输出功能的通用LED 驱动芯片。具有8 位移位寄存器和一个存储器,三态输出功能。 该设备具有串行输入(SER)和串行输出(Q7S)来级联和异步复位输入SCLR的功能。

移位寄存器和存储寄存器时钟都是分开的。

在移位寄存器时钟(SCK)的上升沿时,SER上的数据会被移入移位寄存器,在存储寄存器时钟(RCK)上升沿时,移位寄存器里的数据传输到存储寄存器,当输出使能G为低时,存储寄存器里的数据就会并行输出。

当SCLR为低电平时复位移位寄存器,即将移位寄存器数据清零。

当OE为高电平时输出为高阻态。

2 引脚功能

3 真值表

再来看看该芯片的的真值表图。

从真值表中可以看出其逻辑关系,主要使用红框部分。

4 逻辑关系

从功能框图中可以看出,引脚10、11、14都是作用在移位寄存器的,被传输的数据先进入移位寄存器,再通过SCK将移位寄存器的数据存入存储寄存器,最后通过输出使能端\G使能数据并行输出,引脚9 Q7S用于级联。

我们知道74HC595是将数据串转并的,也就是数据(8bit)串行输入,并行输出。串行并行这些概念就不多说了,不清楚的自行查资料。

使用步骤:

1、先把要传输的数据(8bit)从引脚14 SER输入到74HC595

2、将从SER上的数据串行移入移位寄存器,需要时钟驱动,即引脚11(SCK)每产生一个上升沿,SER上的数据往移位寄存器送入一位,先送低位,后送高位,经过8个上升沿后,8bit全部送入移位寄存器了。

3、将移位寄存器里的数据送入存储寄存器,引脚12(STCP)产生一个上升沿后,该操作就完成了。

4、引脚13(G)为低电平,则步骤3送入存储寄存器的8bit数据(一个字节)就在Q7-Q0并行输出,并输出的数据会被所存起来。

注意:数据并行输出后,只要没有数据更新进来,原输出的数据保持不变,就是所谓的锁存(数据被锁存住)。在完成步骤123后,只要步骤4还没使能,输出都是保持不变的(这里是有误的,输出不是保持不变,不使能,输出是呈高阻态),当OE一使能,新的数据就输出,覆盖旧输出。

5单片595串转并输出过程

最后以图片的形式简单描述将0x11并行输出的过程:

0x11转为二进制是 0001 0001,串转并过程如图

5单片595电路

74HC595的工作原理我们清楚知道要驱动595主要是控制5个引脚:引脚14(DS)、引脚11(SHCP)、引脚12(STCP)和引脚13(OE)。

以74HC595驱动8个LED灯为例设计一个简单电路:

电源和地引脚就不用多说了,上5V,电源引脚加了个0.1uF的去耦电容。

这个电路中,我把引脚13直接接地,芯片是一直处于输出使能的,引脚10接了个上拉电阻到5V,也就是主复位不使能,不使用复位功能。

引脚14、引脚11和引脚12可以连接到单片机的IO引脚,通过单片机编程来驱动74HC595,Q7-Q0连接需控制的负载,这里就是8个LED了。

6 595级联电路

单个74HC595的电路就这样子了,是不是很简单?接下来说下595如何级联使用,我在datasheet中好像没看到最多级联个数,据说可以无限级联,我自己最多级联了4个。

74HC595的级联电路很简单,只需把前一个595的引脚9(Q7S)连接到下一个595的引脚14(DS)即可,如图所示:

74HC595的级联电路设计是不是很简单?为什么这样子就可以实现级联呢?

在前一篇文章也提到74HC595是串行输入,串行/并行输出的,级联就用到这个串行输出了,也就是引脚9,通过引脚9把数据传到下一级595的引脚14(DS),根据图3来说下级联数据传送的原理。

假如往第一级的595连续发三个字节数据:ABCD EFGH、IJKLP MNOP、QRST UVWX,第一个字节ABCD EFGH先进入第一级595移位寄存器;

当第二个数据IJKLP MNOP到来时,也往第一级595移位寄存器移,而第一个字节就会被挤出到第二个移位寄存器;

当第三个数据QRST UVWX到来时,也往第一级移位寄存器移,第二个字节就被挤出到第二级移位寄存器移,而一个字节就被挤出到第三级移位寄存器移;

由于OE引脚一直低电平,所以当STCP产生上升沿后,这三个字节就并行输出了。

注意:由于级联数据是被挤出到下一级的,所以先发送的数据最后是到最后一级595的。

好了,74HC595的电路设计就说到这里,下一篇595文章会讲一下stm32分别用IO模拟时序和SPI总线两种方式控制595控制595实现流水灯的功能。

7 74HC595级联电路编程(模拟IO口控制)

前面两篇文章已详细分析过74HC595的工作原理,接下来讲下用stm32去驱动两片74HC595控制16个LED实现流水灯效果。

这篇的代码是用IO模拟74HC595时序驱动的,下一篇文章,我们介绍下如何用SPI来驱动。直接贴上代码分析,代码很简单,每个语句的注释都说得很清楚了。。。。。。

开发平台:MDK5.14

MCU:STM32F103ZET6

74HC595头文件

#ifndef __595_H

#define __595_H

#include "stm32f10x.h"

#define SHCP_GPIO_PORT      GPIOB

#define SHCP_GPIO_CLK       RCC_APB2Periph_GPIOB

#define SHCP_GPIO_PIN       GPIO_Pin_13

#define STCP_GPIO_PORT      GPIOB

#define STCP_GPIO_CLK       RCC_APB2Periph_GPIOB

#define STCP_GPIO_PIN       GPIO_Pin_12

#define DS_GPIO_PORT        GPIOB

#define DS_GPIO_CLK         RCC_APB2Periph_GPIOB

#define DS_GPIO_PIN     GPIO_Pin_15

#define HC595_SHCP_Low()      GPIO_ResetBits( SHCP_GPIO_PORT, SHCP_GPIO_PIN )

#define HC595_SHCP_High()     GPIO_SetBits( SHCP_GPIO_PORT, SHCP_GPIO_PIN )

#define HC595_STCP_Low()      GPIO_ResetBits( STCP_GPIO_PORT, STCP_GPIO_PIN )

#define HC595_STCP_High()     GPIO_SetBits( STCP_GPIO_PORT, STCP_GPIO_PIN )

#define HC595_Data_Low()      GPIO_ResetBits( DS_GPIO_PORT, DS_GPIO_PIN )

#define HC595_Data_High()     GPIO_SetBits( DS_GPIO_PORT, DS_GPIO_PIN )

void HC595_GPIO_Config(void);

void HC595_Send_Byte(u8 byte);

void HC595_CS(void);

void HC595_Send_Multi_Byte(u8 *data, u16 len);

#endif

74HC595驱动程序,说白了就是往74HC595发送数据

#include "595.h"

#include "spi.h"

void delay(uint16_t t);

/********  74HC595 GPIO 配置 *************************/

void HC595_GPIO_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd( SHCP_GPIO_CLK | STCP_GPIO_CLK | DS_GPIO_CLK, ENABLE);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

GPIO_InitStructure.GPIO_Pin = SHCP_GPIO_PIN;

GPIO_Init(SHCP_GPIO_PORT, &GPIO_InitStructure);   // 初始化 SHCP 引脚

GPIO_InitStructure.GPIO_Pin = STCP_GPIO_PIN;

GPIO_Init(STCP_GPIO_PORT, &GPIO_InitStructure);   // 初始化 STCP 引脚

GPIO_InitStructure.GPIO_Pin = DS_GPIO_PIN;

GPIO_Init(DS_GPIO_PORT, &GPIO_InitStructure);     // 初始化 DS   引脚

//GPIO_ResetBits(SHCP_GPIO_PORT, SHCP_GPIO_PIN);  // 引脚初始状态为高,便于产生上升沿

GPIO_ResetBits(SHCP_GPIO_PORT, SHCP_GPIO_PIN);    // 引脚初始状态为低,便于产生上升沿

GPIO_ResetBits(STCP_GPIO_PORT, STCP_GPIO_PIN);

GPIO_ResetBits(DS_GPIO_PORT, DS_GPIO_PIN);

}

/***

*74HC595 发送一个字节

*即往74HC595的DS引脚发送一个字节

*/

void HC595_Send_Byte(u8 byte)

{

u8 i;

for (i = 0; i < 8; i ++)  //一个字节8位,传输8次,一次一位,循环8次,刚好移完8位

{

/****  步骤1:将数据传到DS引脚    ****/

if (byte & 0x80)        //先传输高位,通过与运算判断第八是否为1

HC595_Data_High();    //如果第八位是1,则与 595 DS连接的引脚输出高电平

else                    //否则输出低电平

HC595_Data_Low();

/*** 步骤2:SHCP每产生一个上升沿,当前的bit就被送入移位寄存器 ***/

HC595_SHCP_Low();   // SHCP拉低

delay(1);           // 适当延时

HC595_SHCP_High();  // SHCP拉高, SHCP产生上升沿

delay(1);

byte <<= 1;     // 左移一位,将低位往高位移,通过    if (byte & 0x80)判断低位是否为1

}

}

/**

*74HC595输出锁存 使能

**/

void HC595_CS(void)

{

/**  步骤3:STCP产生一个上升沿,移位寄存器的数据移入存储寄存器  **/

HC595_STCP_Low();   // 将STCP拉低

delay(1);           // 适当延时

HC595_STCP_High();  // 再将STCP拉高,STCP即可产生一个上升沿

delay(1);

}

/**

*发送多个字节

*便于级联时数据的发送

*级联N级,就需要发送N个字节控制HC595

***/

void HC595_Send_Multi_Byte(u8 *data, u16 len)

{

u8 i;

for (i = 0; i < len; i ++ ) // len 个字节

{

HC595_Send_Byte(data[i]);

}

HC595_CS(); //先把所有字节发送完,再使能输出

}

void delay(uint16_t t)

{

for (; t != 0; t --);

}

#include "stm32f10x.h"

//#include "spi.h"

#include "595.h"

#include "SysTick.h"

u8 pos; // led位置

u8 Led_Pos_Buf[2] = {0x00, 0x00}; //存储要发送的指令字节

//第pos个led亮:1     2    3      4    5     6     7     8

u8 Led[32] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, //控制第二级74HC595

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //第一级的led全灭

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //第二级的led全灭

0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};//控制第一级74HC595

int main(void)

{

//  SPI_Config();

HC595_GPIO_Config();

SysTick_Init();

while(1)

{

for (pos = 0; pos < 16; pos ++) //第pos个灯,实现流水灯效果

{

SysTick_Delay_Ms(500);  //延时500毫秒

Led_Pos_Buf[1] = Led[pos];//存放第一级74HC595数据,因为先进先出,所以第一级放在Led_Pos_Buf[1],而不是Led_Pos_Buf[0]

Led_Pos_Buf[0] = Led[pos+16]; //存放第二级74HC595的数据

HC595_Send_Multi_Byte(Led_Pos_Buf,2);//将当前数据发送到595

}

}

}

8 74HC595级联电路编程(SPI控制)

前一篇是讲用IO口模拟74HC595的时序来控制的,因为74HC595刚好也是串行输入的,所以直接用串行总线SPI来控制,大概说下电路的连接,SPI2的SCK引脚连接74HC595的SHCP引脚,SPI2的CS引脚连接74HC595的STCP引脚,SPI2的MOSI引脚连接74HC595的DS引脚,因为74HC595是没有数据返回给MCU的,所以SPI2的MISO引脚并不需要连接。

下面就把代码放上来,代码很简单,直接使用SPI发送数据就可以了。

开发平台:MDK5.14

MCU:STM32F103ZET6

SPI2头文件

#ifndef __SPI_H

#define __SPI_H

#include "stm32f10x.h"

/*SPI接口定义-开头****************************/

//#define      SPIx                        SPI1

//#define      SPI_APBxClock_FUN          RCC_APB2PeriphClockCmd

//#define      SPI_CLK                     RCC_APB2Periph_SPI1

#define      SPIx                        SPI2

#define      SPI_APBxClock_FUN          RCC_APB1PeriphClockCmd

#define      SPI_CLK                     RCC_APB1Periph_SPI2

//CS(NSS)引脚 片选选普通GPIO即可

#define      SPI_CS_APBxClock_FUN       RCC_APB2PeriphClockCmd

#define      SPI_CS_CLK                  RCC_APB2Periph_GPIOB

#define      SPI_CS_PORT                 GPIOB

#define      SPI_CS_PIN                  GPIO_Pin_12

//SCK引脚

#define      SPI_SCK_APBxClock_FUN      RCC_APB2PeriphClockCmd

#define      SPI_SCK_CLK                 RCC_APB2Periph_GPIOB

#define      SPI_SCK_PORT                GPIOB

#define      SPI_SCK_PIN                 GPIO_Pin_13

//MISO引脚

#define      SPI_MISO_APBxClock_FUN     RCC_APB2PeriphClockCmd

#define      SPI_MISO_CLK                RCC_APB2Periph_GPIOB

#define      SPI_MISO_PORT               GPIOB

#define      SPI_MISO_PIN                GPIO_Pin_14

//MOSI引脚

#define      SPI_MOSI_APBxClock_FUN     RCC_APB2PeriphClockCmd

#define      SPI_MOSI_CLK                RCC_APB2Periph_GPIOB

#define      SPI_MOSI_PORT               GPIOB

#define      SPI_MOSI_PIN                GPIO_Pin_15

#define         SPI_CS_LOW()         GPIO_ResetBits( SPI_CS_PORT, SPI_CS_PIN )

#define         SPI_CS_HIGH()        GPIO_SetBits( SPI_CS_PORT, SPI_CS_PIN )

/*SPI接口定义-结尾****************************/

void SPI_Config(void);

u8 SPI_Read_Send_Byte(u8 byte);

u16 SPI_Read_Send_HalfWord(u16 HalfWord);

void SPI_Send_Byte(u8 byte);

void SPI_Send_Multi_Byte(u8 *data, u16 len);

#endif /* __SPI_H */

SPI2

#include "spi.h"

/**

* @brief  SPI_FLASH初始化

* @param  无

* @retval 无

*/

void SPI_Config(void)

{

SPI_InitTypeDef  SPI_InitStructure;

GPIO_InitTypeDef GPIO_InitStructure;

/* 使能SPI时钟 */

SPI_APBxClock_FUN ( SPI_CLK, ENABLE );

/* 使能SPI引脚相关的时钟 */

SPI_CS_APBxClock_FUN ( SPI_CS_CLK|SPI_SCK_CLK|SPI_MISO_PIN|SPI_MOSI_PIN, ENABLE );

/* 配置SPI的 CS引脚,普通IO即可 */

GPIO_InitStructure.GPIO_Pin = SPI_CS_PIN;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(SPI_CS_PORT, &GPIO_InitStructure);

/* 配置SPI的 SCK引脚*/

GPIO_InitStructure.GPIO_Pin = SPI_SCK_PIN;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(SPI_SCK_PORT, &GPIO_InitStructure);

/* 配置SPI的 MISO引脚*/

GPIO_InitStructure.GPIO_Pin = SPI_MISO_PIN;

GPIO_Init(SPI_MISO_PORT, &GPIO_InitStructure);

/* 配置SPI的 MOSI引脚*/

GPIO_InitStructure.GPIO_Pin = SPI_MOSI_PIN;

GPIO_Init(SPI_MOSI_PORT, &GPIO_InitStructure);

/* 停止信号CS引脚高电平*/

SPI_CS_HIGH();

SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;

SPI_InitStructure.SPI_Mode = SPI_Mode_Master;

SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;

SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;

SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;

SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;

SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64;

SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;

SPI_InitStructure.SPI_CRCPolynomial = 7;

SPI_Init(SPIx , &SPI_InitStructure);

SPI_Cmd(SPIx , ENABLE);

}

u8 SPI_Read_Send_Byte(u8 byte)

{

while (SPI_I2S_GetFlagStatus(SPIx , SPI_I2S_FLAG_TXE) == RESET);

SPI_I2S_SendData(SPIx , byte);

while (SPI_I2S_GetFlagStatus(SPIx , SPI_I2S_FLAG_RXNE) == RESET);

return SPI_I2S_ReceiveData(SPIx);

}

u16 SPI_Read_Send_HalfWord(u16 HalfWord)

{

while (SPI_I2S_GetFlagStatus(SPIx , SPI_I2S_FLAG_TXE) == RESET);

SPI_I2S_SendData(SPIx , HalfWord);

while (SPI_I2S_GetFlagStatus(SPIx , SPI_I2S_FLAG_RXNE) == RESET);

return SPI_I2S_ReceiveData(SPIx );

}

// 在驱动74HC595只需要SPI的发送函数,并没用到读取函数

void SPI_Send_Byte(u8 byte)  //发送一个字节

{

while (SPI_I2S_GetFlagStatus(SPIx , SPI_I2S_FLAG_TXE) == RESET){}

SPI_I2S_SendData(SPIx , byte);

while (SPI_I2S_GetFlagStatus(SPIx , SPI_I2S_FLAG_RXNE) == RESET);

SPI_I2S_ReceiveData(SPIx);

}

void SPI_Send_Multi_Byte(u8 *data, u16 len)  //连续发送 len 个字节

{

u8 i;

SPI_CS_LOW();

for (i = 0; i < len; i ++ )

{

SPI_Send_Byte(data[i]);

}

SPI_CS_HIGH();  // STCP产生上升沿

}

/*********************************************END OF FILE**********************/

主函数

#include "stm32f10x.h"

#include "spi.h"

//#include "595.h"

#include "SysTick.h"

u8 pos; // led位置

u8 Led_Pos_Buf[2] = {0x00, 0x00}; //存储要发送的指令字节

//第pos个led亮:1     2    3      4    5     6     7     8

u8 Led[32] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, //控制第二级74HC595

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //第一级的led全灭

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //第二级的led全灭

0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};//控制第一级74HC595

int main(void)

{

SPI_Config();

//      HC595_GPIO_Config();

SysTick_Init();

while(1)

{

for (pos = 0; pos < 16; pos ++) //第pos个灯,实现流水灯效果

{

SysTick_Delay_Ms(500);  //延时500毫秒

Led_Pos_Buf[1] = Led[pos]; //存放第一级74HC595的数据,因为先进先出,所以第一级放在Led_Pos_Buf[1],而不是Led_Pos_Buf[0]

Led_Pos_Buf[0] = Led[pos+16]; //存放第二级74HC595的数据

SPI_Send_Multi_Byte(Led_Pos_Buf,2);//将当前数据发送到595

}

}

}

参考文献:

https://blog.csdn.net/k1ang/article/details/80012686

https://blog.csdn.net/k1ang/article/details/80012463

参考设计图:

SM74HC595D电路级联教程相关推荐

  1. SM74HC595D电路级联教程[转载]

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接: https://blog.csdn.net/zwj695535100/articl ...

  2. color a dir/s_【单选题】多级放大电路级联的级数越多,则放大器的总电压放大倍数越大,通频带越()。 A. 大 B. 不变 C. 小...

    [单选题]多级放大电路级联的级数越多,则放大器的总电压放大倍数越大,通频带越(). A. 大 B. 不变 C. 小 更多相关问题 Some don't think the policy is reas ...

  3. 计算机电路基础知识教程ppt课件,计算机电路基础教程与实训1.ppt

    计算机电路基础教程与实训1 第1章 基础电子元器件介绍 教学提示与教学要求 1.1 电阻器 1.2 电容器 1.3 电感器 1.4 半导体二极管 1.5 半导体三极管 1.6 本章小结 1.7 习题一 ...

  4. ICT,电路测试教程_您真得了解ICT测试吗?

    ICT,电路测试教程_您真得了解ICT测试吗? 本文介绍:有关用于PCB(印刷电路板)测试的在线测试,ICT和在线测试设备的所有基本要素的说明和详细信息. 自动测试设备(ATE)包括如下几个概念: 在 ...

  5. 计算机电路知识,计算机电路基础教程(完整版)

    计算机电路基础教程(完整版) 名称:计算机电路基础教程(完整版)分类:电脑基础  点击:加载中主讲:时间:2014-10-13 09:22 计算机电路基础教程(完整版)相关介绍 计算机电路是计算机专业 ...

  6. 计算机电路基础知识要点,计算机电路基础教程(精品版)

    这部计算机电路基础教程是一部内容丰富.层次清淅.易于学习的实用教程.仔细观看并跟随学习,大家可以全面掌握电路基本分析方法.正弦交流电路.瞬态分析.半导体器体.放大电路.运算放大器.稳压电路.门电路.触 ...

  7. 迷你世界电路计算机的过程,迷你世界电路定时器教程 电路定时器怎么做

    大家好,我是风游,今天给大家教学在迷你世界中如何制作电路定时器,很多小伙伴在制作电路时,很需要一个能自定义定时切换电路开关用的电路装置,那么需要的小伙伴就和我一起来看看吧. 第一步,我们先准备需要用到 ...

  8. 迷你世界电路计算机的过程,迷你世界循环电路制作教程文字版

    迷你世界循环电路怎么做,迷你世界循环电路教程.循环电路做起来不简单,但用起来挺好用的哦,快来看看循环电路是怎么做的吧~ 首先得准备好:电能增幅器,红.蓝色电能线,方块(要可以插电能产生器),电能产生器 ...

  9. 两台虚拟服务器如何级联,[教程] 利用open vswitch建立vxlan隧道实现不同主机上的虚拟交换机级联...

    写在开头 在某些环境下,需要实现两台物理机中的openvswitch交换机级联,以实现两台交换机中的设备互相通讯,这里使用vxlan隧道技术,将数据包封装在UDP中,通过以太网实现数据包传输. VXL ...

  10. TDA2030的功率放大电路详细教程

    本电路可以将是利用运放TDA2030A制作的功率放大器.电源电压为±12V至±22V.输出的最大功率为18W. 该电路为深度负反馈电路,输出电压的放大倍数约为Av=R1/R2=32.3(具体放大倍数请 ...

最新文章

  1. 单例模式中的懒汉式以及线程安全性问题
  2. 【中级软考】面向对象分析包含哪几个活动?
  3. paradox 修改字段长度_关于生日的作文500字9篇
  4. 计算机基础:信息安全相关知识笔记
  5. mysql 优化not null_mysql 优化之11:尽可能的使用 NOT NULL
  6. django和mysql如何建模_Django如何设计数据模型
  7. python 不等于_python零基础(二)
  8. Python精通-Python集合操作详解
  9. Java乔晓松-android中调用系统拍照功能并显示拍照的图片
  10. 牛客网暑期ACM多校训练营(第三场) J Distance to Work 计算几何求圆与多边形相交面积模板...
  11. Perl脚本的调试方法
  12. 第一次作业+105032014140
  13. 最近写的一个书店项目
  14. 证明不是哈密顿图的几种方法归纳总结
  15. Xcode dSYM 文件
  16. 小程序二维码生成普通链接并携带参数
  17. linux瘦身软件下载,Linux系统瘦身裁剪 ——测试版
  18. 厦门理工学院1219 (zyf的童年) (纯C语言版本)
  19. 学习笔记—什么是微数据?itemscope/itemtype/itemprop(搜索引擎seo优化)
  20. MySQL高级---04

热门文章

  1. 【出国面试】出国 交换 / 访学 / 留学 国外导师面试经验分享
  2. 机器学习中的数学(八):卡方分布(Chi-squared Distribution) t分布(T Distribution)F分布(T Distribution)
  3. 大数据的核心价值是什么?
  4. Word一般文章格式
  5. mysql 5.6 msvcr100_mysql 5.6.46 安装到winserver2012(x64) 遇到 MSVCR100.dll is missing
  6. 面试算法:利用堆栈计算逆向波兰表达式
  7. K8s简述NodePort
  8. AIR应用:二维码批量生成
  9. linux kvm usb设备,KVM使用USB设备的方法
  10. 纸牌游戏--小猫钓鱼