(说明:本文没有详细描写有关QSPI通信时的细节,只是作为一个简要记录,说明一下QSPI驱动屏幕时的一些要点)

1、引脚说明:

(1)LED_K:LCD屏背光负极

(2)LED_A:LCD屏背光正极

(该应用中,LED_A常供电3.3V,通过调节LED_K来控制背光的亮灭)

(3)LCD_CS:片选脚,低电平选中

(4)LCD_DA0:QSPI通信0脚

(5)LCD_DA1:QSPI通信1脚

(6)LCD_DA2:QSPI通信2脚

(7)LCD_DA3:QSPI通信3脚

(8)LCD_CLK:QSPI通信始终脚

(9)LCD_RST:复位脚

注:有些驱动IC还需要LCD_RS脚,用于控制当前发送的是命令还是数据,NV3030B不需要

2、空闲时各引脚电平说明:

LED_K:高或悬空,关闭背光;

LCD_CS:高,没有选中IC;

LCD_CLK:高,空闲电平默认为高,驱动IC-NV3030B在CLK上升沿采样数据;

LCD_RST:高,需要复位时下拉RST脚100ms,再拉高即可

LCD_DA0~LCD_DA3:高,QSPI通信时的数据引脚,半双工通信;发送命令阶段都是通过LCD_DA0单线进行的,只有在发送图片数据时才会使用到LCD_DA1~LCD_DA3

3、通信时序图:

(1)发送命令,以及给寄存器发送数据时只使用三根线CS,CLK,DA0,而DA1~DA3固定为高阻或高,RST为高,时序图如下(DA0在CLK下降沿切换数据,上升沿保持数据稳定):

(2)发送图像数据时使用6根线CS,CLK,DA0,DA1,DA2,DA3,而RST固定为高,时序图如下(DA0~DA3在CLK下降沿切换数据,上升沿保持数据稳定):

在传输数据高4位时,DA3~DA0分别表示Bit7~Bit4;

在传输数据低4位时,DA3~DA0分别表示Bit3~Bit0;

4、例程:

.h文件:

//------------------------------------------------------
#define RED    0xF800         //定义颜色常量 
#define GREEN  0x07E0
#define BLUE   0x001F
#define WHITE  0xFFFF
#define BLACK  0x0000
#define GRAY   0xEF5D         //0x2410
#define GRAY75 0x39E7 
#define GRAY50 0x7BEF    
#define GRAY25 0xADB5    
//------------------------------------------------------

#define QSPI_CS_PIN     34 //片选脚
#define QSPI_CLK_PIN    35 //时钟脚
#define QSPI_RS_PIN     38 //数据/命令脚
#define QSPI_DA0_PIN    40 //数据脚0
#define QSPI_DA1_PIN    41 //数据脚1
#define QSPI_DA2_PIN    11 //数据脚2
#define QSPI_DA3_PIN    12 //数据脚3
#define QSPI_BL_EN_PIN  33 //背光使能脚
#define QSPI_RST_PIN    37 //硬件复位脚
#define QSPI_PWR_EN_PIN 22 //LCD的VCC使能脚

#define QSPI_CS_Clr()  nrf_gpio_pin_clear(QSPI_CS_PIN)//CS1
#define QSPI_CS_Set()  nrf_gpio_pin_set(QSPI_CS_PIN)

#define QSPI_CLK_Clr() nrf_gpio_pin_clear(QSPI_CLK_PIN);
#define QSPI_CLK_Set() nrf_gpio_pin_set(QSPI_CLK_PIN)

#define QSPI_RS_Clr()   nrf_gpio_pin_clear(QSPI_RS_PIN)//DC
#define QSPI_RS_Set()   nrf_gpio_pin_set(QSPI_RS_PIN)

#define QSPI_DA0_Clr() nrf_gpio_pin_clear(QSPI_DA0_PIN)
#define QSPI_DA0_Set() nrf_gpio_pin_set(QSPI_DA0_PIN)
#define QSPI_DA1_Clr() nrf_gpio_pin_clear(QSPI_DA1_PIN)
#define QSPI_DA1_Set() nrf_gpio_pin_set(QSPI_DA1_PIN)
#define QSPI_DA2_Clr() nrf_gpio_pin_clear(QSPI_DA2_PIN)
#define QSPI_DA2_Set() nrf_gpio_pin_set(QSPI_DA2_PIN)
#define QSPI_DA3_Clr() nrf_gpio_pin_clear(QSPI_DA3_PIN)
#define QSPI_DA3_Set() nrf_gpio_pin_set(QSPI_DA3_PIN)

#define QSPI_BLK_Clr() nrf_gpio_pin_clear(QSPI_BL_EN_PIN)//BLK
#define QSPI_BLK_Set() nrf_gpio_pin_set(QSPI_BL_EN_PIN)

#define QSPI_RES_Clr()  nrf_gpio_pin_clear(QSPI_RST_PIN)//RES
#define QSPI_RES_Set()  nrf_gpio_pin_set(QSPI_RST_PIN)

#define QSPI_PWR_EN_Clr()  nrf_gpio_pin_clear(QSPI_PWR_EN_PIN)//RES
#define QSPI_PWR_EN_Set()  nrf_gpio_pin_set(QSPI_PWR_EN_PIN)

typedef enum{
      SINGLE_LINE,
      QUAD_LINE
}ENUM_QSPI_IO_NUM;

void Nv3030BInit(void);
void DispColor(unsigned int color);

.c文件:

void NV3030BGpioInit(void)
{
     nrf_gpio_cfg_output(QSPI_CS_PIN);
     nrf_gpio_cfg_output(QSPI_CLK_PIN);
     nrf_gpio_cfg_output(QSPI_RS_PIN);
     nrf_gpio_cfg_output(QSPI_DA0_PIN);
     nrf_gpio_cfg_output(QSPI_DA1_PIN);
     nrf_gpio_cfg_output(QSPI_DA2_PIN);
     nrf_gpio_cfg_output(QSPI_DA3_PIN);
     nrf_gpio_cfg_output(QSPI_BL_EN_PIN);
     nrf_gpio_cfg_output(QSPI_RST_PIN);
     nrf_gpio_cfg_output(QSPI_PWR_EN_PIN);
    
     QSPI_CS_Set();  
     QSPI_CLK_Set();
     QSPI_DA0_Set();
     QSPI_DA1_Set();
     QSPI_DA2_Set();
     QSPI_DA3_Set();
     QSPI_RES_Set();
     QSPI_RS_Set();
     QSPI_BLK_Set();  
     QSPI_PWR_EN_Set();  
}

/*
**********************************************************************************
 *Function:     QspiSingleIOWrite
 *Description:  QSPI单线IO传输数据
 *Calls:       
 *Called By:   
 *Input:        dat:要传输的数据
 *Output:      
 *Return:      
 *Others:       
*********************************************************************************
*/
void QspiSingleIOWriteData(uint8_t dat) 
{    
        uint8_t i;
    
//        QSPI_CS_Clr();
        for(i=0;i<8;i++){              
                QSPI_CLK_Clr();
                if(dat&0x80)
                {
                     QSPI_DA0_Set();
                }
                else
                {
                     QSPI_DA0_Clr();
                }
                QSPI_CLK_Set();
                dat<<=1;
        }    
//        QSPI_CS_Set();    
}

/*
**********************************************************************************
 *Function:     Nv3030bQspiQuadIOWrite
 *Description:  QSPI四线IO传输数据
 *Calls:        
 *Called By:    
 *Input:        dat:要传输的数据
 *Output:      
 *Return:      
 *Others:       
*********************************************************************************
*/
void QspiQuadIOWriteData(uint8_t dat) 
{    
        uint8_t i;
    
//        QSPI_CS_Clr();
        for(i=0;i<2;i++){              
                QSPI_CLK_Clr();
                if(dat&0x80)
                {
                     QSPI_DA3_Set();
                }
                else
                {
                     QSPI_DA3_Clr();
                }
                dat<<=1;
                
                if(dat&0x80)
                {
                     QSPI_DA2_Set();
                }
                else
                {
                     QSPI_DA2_Clr();
                }
                dat<<=1;
                
                if(dat&0x80)
                {
                     QSPI_DA1_Set();
                }
                else
                {
                     QSPI_DA1_Clr();
                }
                dat<<=1;
                
                if(dat&0x80)
                {
                     QSPI_DA0_Set();
                }
                else
                {
                     QSPI_DA0_Clr();
                }
                QSPI_CLK_Set();
                dat<<=1;                
        }    
//        QSPI_CS_Set();    
}

/*
**********************************************************************************
 *Function:     QspiSingleIOWrData8
 *Description:  QSPI单线IO传输1字节数据
 *Calls:       
 *Called By:   
 *Input:        dat:要传输的数据
 *Output:      
 *Return:      
 *Others:       
*********************************************************************************
*/
void QspiSingleIOWrData8(uint8_t dat)
{
    QspiSingleIOWriteData(dat);
}

/*
**********************************************************************************
 *Function:     QspiQuadIOWrData8
 *Description:  QSPI四线IO传输1字节数据
 *Calls:       
 *Called By:   
 *Input:        dat:要传输的数据
 *Output:      
 *Return:      
 *Others:       
*********************************************************************************
*/
void QspiQuadIOWrData8(uint8_t dat)
{
    QspiQuadIOWriteData(dat);
}

/*
**********************************************************************************
 *Function:     QspiWrData16
 *Description:  QSPI传输4字节数据
 *Calls:       
 *Called By:   
 *Input:        l_line:传输数据时使用的线数,
                       SINGLE_LINE:用单根IO传输
                       QUAD_LINE:  用4根IO传输
                   dat:要传输的数据
 *Output:      
 *Return:      
 *Others:       
*********************************************************************************
*/
void QspiWrData16(ENUM_QSPI_IO_NUM l_line, uint16_t dat)
{
    if(SINGLE_LINE == l_line){
            QspiSingleIOWriteData(dat>>8);
            QspiSingleIOWriteData(dat);
        }
        else{
            QspiQuadIOWriteData(dat>>8);
            QspiQuadIOWriteData(dat);
        }
}

/*
**********************************************************************************
 *Function:     QspiWrComm
 *Description:  QSPI写寄存器
 *Calls:       
 *Called By:   
 *Input:        l_line:传输数据时使用的线数,
                       SINGLE_LINE:用单根IO传输
                       QUAD_LINE:  用4根IO传输
                  dat:要传输的数据
 *Output:      
 *Return:      
 *Others:       
*********************************************************************************
*/
void QspiWrComm(uint8_t dat)
{
//        QSPI_RS_Clr();//写命令
    QspiSingleIOWriteData(0x02);
    QspiSingleIOWriteData(0x00);
    QspiSingleIOWriteData(dat);
    QspiSingleIOWriteData(0x00);
//        QSPI_RS_Set();//写数据
}

/*
**********************************************************************************
 *Function:     Nv3030bQspiAddressSet
 *Description:  设置起始和结束地址
 *Calls:       
 *Called By:   
 *Input:        x1,x2 设置列的起始和结束地址
                    y1,y2 设置行的起始和结束地址
 *Output:      
 *Return:      
 *Others:       
*********************************************************************************
*/
void QspiAddressSet(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2)
{
    QSPI_CS_Clr();
    QspiWrComm(0x2a);//列地址设置
    QspiWrData16(SINGLE_LINE,x1);
    QspiWrData16(SINGLE_LINE,x2);
    QSPI_CS_Set();
    
    QSPI_CS_Clr();
    QspiWrComm(0x2b);//行地址设置
    QspiWrData16(SINGLE_LINE,y1);
    QspiWrData16(SINGLE_LINE,y2);
    QSPI_CS_Set();
    
    QSPI_CS_Clr();
    QspiWrComm(0x2c);//储存器写
    QSPI_CS_Set();
}

/*
**********************************************************************************
 *Function:     Nv3030BInit
 *Description:  Nv3030B初始化
 *Calls:       
 *Called By:   
 *Input:        
 *Output:      
 *Return:      
 *Others:       
*********************************************************************************
*/
void Nv3030BInit(void)
{
    NV3030BGpioInit();
    
    QSPI_CS_Clr();
    QSPI_RES_Set();
    nrf_delay_ms(10);
    QSPI_RES_Clr();
    nrf_delay_ms(100);
    QSPI_RES_Set();
    nrf_delay_ms(100);
      
    QspiWrComm(0xFD); //私有访问
    QspiSingleIOWrData8(0x06);    //进入私有寄存器模式
    QspiSingleIOWrData8(0x08);
    QSPI_CS_Set();
    nrf_delay_ms(1);
    
    //QspiWrComm(0x60);         //时钟频率调整
    //QspiQuadIOWrData8(0x03);
    //QspiQuadIOWrData8(0x01);
    //QspiQuadIOWrData8(0x01);
    QSPI_CS_Clr();
    QspiWrComm(0x61);//VDD设置
    QspiSingleIOWrData8(0x06);   //唤醒时VDD1.68
    QspiSingleIOWrData8(0x04);   //睡眠时VDD1.29
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x62);//
    QspiSingleIOWrData8(0x00);
    QspiSingleIOWrData8(0x44);
    QspiSingleIOWrData8(0x40);
    //QspiQuadIOWrData8(0x03);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x63);//
    QspiSingleIOWrData8(0x41);
    QspiSingleIOWrData8(0x07);
    QspiSingleIOWrData8(0x12);
    QspiSingleIOWrData8(0x12);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x64);
    QspiSingleIOWrData8(0x37);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x65);
    QspiSingleIOWrData8(0x09);
    QspiSingleIOWrData8(0x10);
    QspiSingleIOWrData8(0x21);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x66);
    QspiSingleIOWrData8(0x09);
    QspiSingleIOWrData8(0x10);
    QspiSingleIOWrData8(0x21);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x67);
    QspiSingleIOWrData8(0x21);
    QspiSingleIOWrData8(0x40);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x68);
    QspiSingleIOWrData8(0x5d);
    QspiSingleIOWrData8(0x4c);//
    QspiSingleIOWrData8(0x2c);//
    QspiSingleIOWrData8(0x1c);//
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xB1);
    QspiSingleIOWrData8(0x0f); //0c
    QspiSingleIOWrData8(0x02); //00
    QspiSingleIOWrData8(0x07); //01
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xB4);
    QspiSingleIOWrData8(0x02);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xB5);
    QspiSingleIOWrData8(0x02);
    QspiSingleIOWrData8(0x02);//
    QspiSingleIOWrData8(0x0a);//
    QspiSingleIOWrData8(0x14);//
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xb6);
    QspiSingleIOWrData8(0x44);
    QspiSingleIOWrData8(0x01);
    QspiSingleIOWrData8(0x9f);
    QspiSingleIOWrData8(0x00);
    QspiSingleIOWrData8(0x02);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xdf);
    QspiSingleIOWrData8(0x11);
    QSPI_CS_Set();

///NV3030A2 GAMMA/
    QSPI_CS_Clr();
    QspiWrComm(0xe0); //gmama set 2.2
    QspiSingleIOWrData8(0x01); //PKP0[4:0]
    QspiSingleIOWrData8(0x06); //PKP1[4:0]
    QspiSingleIOWrData8(0x0e); //PKP2[4:0]
    QspiSingleIOWrData8(0x10); //PKP3[4:0]
    QspiSingleIOWrData8(0x0e); //PKP4[4:0]
    QspiSingleIOWrData8(0x0c); //PKP5[4:0]
    QspiSingleIOWrData8(0x0a); //PKP6[4:0]
    QspiSingleIOWrData8(0x16); //PKP6[4:0]
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xe3);
    QspiSingleIOWrData8(0x16); //PKN0[4:0]
    QspiSingleIOWrData8(0x13); //PKN1[4:0]
    QspiSingleIOWrData8(0x14); //PKN2[4:0]
    QspiSingleIOWrData8(0x10); //PKN3[4:0]
    QspiSingleIOWrData8(0x0f); //PKN4[4:0]
    QspiSingleIOWrData8(0x0f); //PKN5[4:0]
    QspiSingleIOWrData8(0x04); //PKN6[4:0]
    QspiSingleIOWrData8(0x01); //PKN6[4:0]
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xe1);
    QspiSingleIOWrData8(0x14); //PRP0[6:0]
    QspiSingleIOWrData8(0x68); //PRP1[6:0]
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xe4);
    QspiSingleIOWrData8(0x68); //PRN0[6:0]
    QspiSingleIOWrData8(0x14); //PRN1[6:0]
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xe2);
    QspiSingleIOWrData8(0x00); //VRP0[5:0]
    QspiSingleIOWrData8(0x0a); //VRP1[5:0]
    QspiSingleIOWrData8(0x09); //VRP2[5:0]
    QspiSingleIOWrData8(0x30); //VRP3[5:0]
    QspiSingleIOWrData8(0x39); //VRP4[5:0]
    QspiSingleIOWrData8(0x3f); //VRP5[5:0]
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xe5);
    QspiSingleIOWrData8(0x3f); //VRN0[5:0]
    QspiSingleIOWrData8(0x33); //VRN1[5:0]
    QspiSingleIOWrData8(0x28); //VRN2[5:0]
    QspiSingleIOWrData8(0x09); //VRN3[5:0]
    QspiSingleIOWrData8(0x0a); //VRN4[5:0]
    QspiSingleIOWrData8(0x00); //VRN5[5:0]
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xe6);
    QspiSingleIOWrData8(0x00);
    QspiSingleIOWrData8(0xff);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xe7);
    QspiSingleIOWrData8(0x01);
    QspiSingleIOWrData8(0x04);
    QspiSingleIOWrData8(0x03);
    QspiSingleIOWrData8(0x03);
    QspiSingleIOWrData8(0x00);
    QspiSingleIOWrData8(0x12);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xE8);
    QspiSingleIOWrData8(0x00);
    QspiSingleIOWrData8(0x60);
    QspiSingleIOWrData8(0x00);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xec);
    QspiSingleIOWrData8(0x62);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xf1);
    QspiSingleIOWrData8(0x00);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0xfd); //私有访问
    QspiSingleIOWrData8(0xfa);    //退出私有访问
    QspiSingleIOWrData8(0xfc);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x3a);
    QspiSingleIOWrData8(0x55);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x35);
    QspiSingleIOWrData8(0x00);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x11); // exit sleep
    nrf_delay_ms(200);
    QSPI_CS_Set();

QSPI_CS_Clr();
    QspiWrComm(0x29); // display on
    nrf_delay_ms(10);
    QSPI_CS_Set();
}

/*
**********************************************************************************
 *Function:     DispColor
 *Description:  用统一颜色刷屏
 *Calls:       
 *Called By:   
 *Input:        
 *Output:      
 *Return:      
 *Others:       
*********************************************************************************
*/
void DispColor(unsigned int color)
{
    unsigned int i,j;    
    QspiAddressSet(0,0,240,320);

QSPI_CS_Clr();
    QspiSingleIOWriteData(0x12);
    QspiQuadIOWriteData(0x00);
    QspiQuadIOWriteData(0x2c);
    QspiQuadIOWriteData(0x00);
    
    for(i=0; i<320; i++)
          for(j=0; j<240; j++){
                    QspiWrData16(QUAD_LINE,color);
                }
    QSPI_CS_Set();
}

main函数:

int main(void)
{
        Nv3030BInit();

while(true){
                DispColor(RED);            
                DispColor(GREEN);
                DispColor(BLUE);
                DispColor(WHITE);
                DispColor(BLACK);
                DispColor(GRAY);
                nrf_delay_ms(2000);
        }
}

QSPI驱动带NV3030B的LCD屏相关推荐

  1. mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖

    ps:创业开发产品,自学笔记,不一定适合教材性的阅读,零碎整理,自我总结用 材料:4.1寸lcd屏两块,屏自带触控,屏幕资料具备,rk3399和MK8788开发版上分别开发. 开发环境: 1]rk33 ...

  2. 屏幕篇—如何最快速驱动LCD屏

    屏幕篇-如何最快速驱动LCD屏 前言 LCD屏的驱动对于新手来说,这是一个很大的拦路虎.学完基础外设后,在这里就不知道怎么下手了.一个完整的LCD驱动包含的内容是非常多的,最基础的描点,画线,显示字符 ...

  3. linux spi屏驱动程序,65 linux spi设备驱动之spi LCD屏驱动

    SPI的控制器驱动由平台设备与平台驱动来实现. 驱动后用spi_master对象来描述.在设备驱动中就可以通过函数spi_write, spi_read, spi_w8r16, spi_w8r8等函数 ...

  4. 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(解答篇)...

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060上LCD横向渐变色显示出亮点问题的分析解决经验. 接上篇<一个关于LCD屏显示出异常亮点的故事(上)>咱 ...

  5. 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(提问篇)...

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060上LCD横向渐变色显示出亮点问题的分析解决经验. 痞子衡前段时间在支持一个i.MXRT1060客户项目时遇到了LCD ...

  6. 【解决方案】STM32L152单片机驱动段码LCD屏,执行HAL_LCD_Init函数失败返回HAL_TIMEOUT,长时间卡在LCD_FLAG_RDY的while循环里面的解决办法

    STM32L152单片机驱动段码LCD屏,HAL_LCD_Init函数执行失败,卡在LCD_FLAG_RDY里面,函数返回HAL_TIMEOUT /*!< Wait Until the LCD ...

  7. STM32 FSMC接口驱动4.3寸TFT LCD屏

    STM32 FSMC接口驱动4.3寸TFT LCD屏 STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏. 这里以STM32F103VET ...

  8. 【内核配置】六、修改内核自带的的LCD驱动源码并编译进内核 | 烧写到Mini2440__TD35 完整攻略...

    主   机:VMWare--Ubuntu-16.04.2-x64-100ask 开发板:Mini2440--256M NandFlash, 2M NorFlash, 64M SDRAM, LCD-TD ...

  9. 驱动程序开发:LCD屏显示驱动

    1.简介   在 Linux 中应用程序最终也是通过操作 RGB LCD 的显存来实现在 LCD 上显示字符.图片等信息.在裸机中我们可以随意的分配显存,但是在 Linux 系统中内存的管理很严格,显 ...

最新文章

  1. clickhouse 子查询_Clickhouse 查询分布式表子查询 (Distributed Subqueries )
  2. [PAT乙级]1006 换个格式输出整数
  3. 阿里巴巴自研代码管理平台技术解密
  4. 佐治亚理工学院 计算投资公开课第五周作业 市场仿真器
  5. 用到oracle是不是就是cs架构,用Oracle 的2Tier协议录制脚本模拟CS系统测试的案例和注意事项pdf...
  6. 《面向数据科学的概率论》翻译活动期待大家的参与 | ApacheCN
  7. javascript继承的原理
  8. 计算不确定度(C语言-大物实验)-复制即可使用
  9. 在龙芯1c上使用rt-thread统一标准的spi接口
  10. ajax背景,ajax到底是什么?ajax的背景和使用介绍(附实例解析)
  11. 手机APP开发常用工具有哪些
  12. linux cenos7搭建lvs,CentOS7 搭建LVS+keepalived负载均衡
  13. MATLAB未找到支持的编译器或 sdk 解决方案
  14. quartz定时器时间设置规则
  15. 【LeeCode】赛题02:Python解答大衍数列题目
  16. python go 的区别
  17. 嵌入式软件工程师面试题(九)
  18. 轻松解读仿生学最优化算法(一)——遗传算法
  19. 路由器接口及连接(2)
  20. 2020年十大开源免费的WEB应用防火墙

热门文章

  1. 智能手机马拉松:后半程是耐力赛
  2. pstack无法使用的问题
  3. 将idea设置为中文
  4. ThreadLocal如何保证获取到想要线程变量
  5. 拖拖拽拽设计门户首页—Jeecg门户设计器,你想象不到的简单
  6. 手动实现表格分页功能
  7. Win10离线安装.NET Framework 3.5的方法技巧(附离线安装包下载)
  8. 【Ubuntu18.04 无法找到终端 ifconfig 命令】
  9. Windows10下安装Centos7系统及常见问题
  10. gradient设置上下渐变_CSS3 渐变