国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FPGA驅(qū)動(dòng)SPI接口的LCD(三)——LCD的初始化

這篇具有很好參考價(jià)值的文章主要介紹了FPGA驅(qū)動(dòng)SPI接口的LCD(三)——LCD的初始化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、跟據(jù)參考的STM32代碼了解初始化流程?

LCD初始化函數(shù)

void LCD_Init(void);

?首先是LCD的復(fù)位

void LCD_RESET(void)
{
?? ?LCD_RST_CLR;? ? ? ? //拉低復(fù)位引腳
?? ?Delay_Ms(100);? ? ? ? //延時(shí)100ms?? ?
?? ?LCD_RST_SET;? ? ? ? //拉高復(fù)位引腳
?? ?Delay_Ms(50);? ? ? ? //延時(shí)50ms
}

向LCD屏幕寫(xiě)入一個(gè)8位命令

void LCD_WR_REG(u8 data)
{?
? ?LCD_CS_CLR;? ? ?//拉低片選引腳
?? ? LCD_RS_CLR;? ? ? //拉低dc引腳
? ?SPI_WriteByte(SPI1,data);? ? ? ? //使用硬件SPI寫(xiě)入一個(gè)字節(jié)的數(shù)據(jù) ?
? ?LCD_CS_SET;? ? ? ? //拉高片選引腳
}

將8位數(shù)據(jù)寫(xiě)入LCD屏幕

void LCD_WR_DATA(u8 data)
{
? ?LCD_CS_CLR;? ? ?//拉低片選引腳
?? ? LCD_RS_SET; ? ? //拉高dc引腳
? ?SPI_WriteByte(SPI1,data);????????//使用硬件SPI寫(xiě)入一個(gè)字節(jié)的數(shù)據(jù)
? ?LCD_CS_SET;? ? ? ? //拉高片選引腳
}

設(shè)置液晶顯示屏的顯示方向

void LCD_direction(u8 direction);

清屏,也就是整個(gè)屏幕的點(diǎn)都為白色

void LCD_Clear(u16 Color);

LCD顯示窗口設(shè)置

void LCD_SetWindows(u16 xStar, u16 yStar,u16 xEnd,u16 yEnd);

二、模塊框圖

FPGA驅(qū)動(dòng)SPI接口的LCD(三)——LCD的初始化

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-427685.html

三、設(shè)計(jì)狀態(tài)機(jī)

FPGA驅(qū)動(dòng)SPI接口的LCD(三)——LCD的初始化

1、初始化命令

初始化命令是廠家已經(jīng)配置好的,直接調(diào)用這部分就行了。?

?? ?LCD_WR_REG(0xCF); ?
?? ?LCD_WR_DATA(0x00);?
? ?(省略~)
?? ?LCD_WR_DATA(0xef);?? ??
?? ?LCD_WR_REG(0x11); //Exit Sleep
?? ?Delay_Ms(120);
?? ?LCD_WR_REG(0x29); //display on

2、設(shè)置LCD顯示方向

為了方便省事,只考慮參考代碼中液晶屏順時(shí)針旋轉(zhuǎn)方向?yàn)?的情況。

#define USE_HORIZONTAL ??? ? 0//定義液晶屏順時(shí)針旋轉(zhuǎn)方向 ?? ?0-0度旋轉(zhuǎn),1-90度旋轉(zhuǎn),2-180度旋轉(zhuǎn),3-270度旋轉(zhuǎn)

void LCD_direction(u8 direction)函數(shù)只需要知道LCD_WriteReg(0x36,(1<<3)|(0<<6)|(0<<7));

傳輸?shù)絣cd_write模塊的數(shù)據(jù)(最高位決定命令/數(shù)據(jù),0為命令,1為數(shù)據(jù))為9'h036和9'h108。

3、清屏

lcd的清屏步驟是先設(shè)置LCD的填充窗口大?。?20x240)

9'h02A;? ? ? ? //列地址設(shè)置
{1'b1,7'b0000_000,start_x[8]};? ? ? ? //x的開(kāi)始坐標(biāo)高8位
{1'b1,start_x[7:0]};? ? ? ? ? ? ? ? ? ? ? ? ? ?//x的開(kāi)始坐標(biāo)低8位
{1'b1,7'b0000_000,end_x[8]};? ? ? ? ?//x的結(jié)束坐標(biāo)高8位? ? ? ? ? ? ? ??
{1'b1,end_x[7:0]};? ? ? ? ? ? ? ? ? ? ? ? ? ? //x的結(jié)束坐標(biāo)低8位
9'h02B;? ? ? ? //頁(yè)面地址設(shè)置
{1'b1,7'b0000_000,start_y[8]};? ? ? ? //y的開(kāi)始坐標(biāo)高8位
{1'b1,start_y[7:0]};? ? ? ? ? ? ? ? ? ? ? ? ? ?//y的開(kāi)始坐標(biāo)低8位
{1'b1,7'b0000_000,end_y[8]};? ? ? ? ?//y的結(jié)束坐標(biāo)高8位
{1'b1,end_y[7:0]};? ? ? ? ? ? ? ? ? ? ? ? ? ? //y的結(jié)束坐標(biāo)低8位
9'h02C;? ? ? ? //存儲(chǔ)器寫(xiě)入

清屏的時(shí)候設(shè)置的窗口大小(320x240)和start_x、start_y、end_x、end_y已經(jīng)確定,可以直接用以下部分。

9'h02A
9'h100
9'h100
9'h100
9'h1ef
9'h02B
9'h100
9'h100
9'h101
9'h13f
9'h02C

然后在需要填充的點(diǎn)進(jìn)行對(duì)應(yīng)顏色(白色)的填充。顏色填充為16位,先傳高8位,再傳低8位。

一共傳輸320*240*2-1=153,599次。

四、波形圖繪制

FPGA驅(qū)動(dòng)SPI接口的LCD(三)——LCD的初始化

?FPGA驅(qū)動(dòng)SPI接口的LCD(三)——LCD的初始化

?FPGA驅(qū)動(dòng)SPI接口的LCD(三)——LCD的初始化

?五、代碼編寫(xiě)

module lcd_init
// #(//仿真時(shí)調(diào)用
    // parameter   TIME100MS    = 23'd100,  //23'd5000_000  
                // TIME150MS    = 23'd150,  //23'd7500_000  
                // TIME120MS    = 23'd120,  //23'd6000_000  
                // TIMES4MAX    = 18'd51 ,  //320*240*2+13(設(shè)置窗口大小)=153_613 
                // DATA_IDLE    = 9'b0_0000_0000
// )
#(//驅(qū)動(dòng)lcd時(shí)調(diào)用
    parameter   TIME100MS    = 23'd5000_000,  //23'd5000_000  
                TIME150MS    = 23'd7500_000,  //23'd7500_000  
                TIME120MS    = 23'd6000_000,  //23'd6000_000  
                TIMES4MAX    = 18'd153_613 ,  //320*240*2+13(設(shè)置窗口大?。?153_613   
                DATA_IDLE    = 9'b0_0000_0000
)
(
    input   wire            sys_clk_50MHz ,
    input   wire            sys_rst_n     ,
    input   wire            wr_done       ,
    
    
    output  reg             lcd_rst       ,
    output  reg     [8:0]   init_data     ,
    output  wire            en_write      ,
    output  wire            init_done
);
//****************** Parameter and Internal Signal *******************//
//畫(huà)筆顏色
parameter   WHITE   = 16'hFFFF,
            BLACK   = 16'h0000,	  
            BLUE    = 16'h001F,  
            BRED    = 16'hF81F,
            GRED 	= 16'hFFE0,
            GBLUE	= 16'h07FF,
            RED     = 16'hF800,
            MAGENTA = 16'hF81F,
            GREEN   = 16'h07E0,
            CYAN    = 16'h7FFF,
            YELLOW  = 16'hFFE0,
            BROWN 	= 16'hBC40, //棕色
            BRRED 	= 16'hFC07, //棕紅色
            GRAY  	= 16'h8430; //灰色

//----------------------------------------------------------------- 
reg [5:0]   state;
parameter   S0_DELAY100MS         = 6'b000_001, 
            S1_DELAY50MS          = 6'b000_010,
            S2_WR_90              = 6'b000_100,
            S3_DELAY120MS         = 6'b001_000,
            S4_WR_DIRECTION_CLEAR = 6'b010_000,
            DONE                  = 6'b100_000;
            
reg [22:0]  cnt_150ms;
reg         lcd_rst_high_flag;
reg [6:0]   cnt_s2_num;
reg         cnt_s2_num_done; 
reg [17:0]  cnt_s4_num;
reg         cnt_s4_num_done;   

//----------------------------------------------------------------- 
//狀態(tài)跳轉(zhuǎn)            
always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        state <= S0_DELAY100MS;
    else
        case(state)
            S0_DELAY100MS:
                state <= (cnt_150ms == TIME100MS) ? S1_DELAY50MS : S0_DELAY100MS;
            S1_DELAY50MS:
                state <= (cnt_150ms == TIME150MS) ? S2_WR_90 : S1_DELAY50MS;
            S2_WR_90:
                state <= (cnt_s2_num_done) ? S3_DELAY120MS : S2_WR_90;
            S3_DELAY120MS:
                state <= (cnt_150ms == TIME120MS) ? S4_WR_DIRECTION_CLEAR : S3_DELAY120MS; 
            S4_WR_DIRECTION_CLEAR:
                state <= (cnt_s4_num_done) ? DONE : S4_WR_DIRECTION_CLEAR;
            DONE:
                state <= DONE;
            default:
                state <= S0_DELAY100MS;
        endcase

//cnt_150ms
always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        cnt_150ms <= 23'd0;
    else if(state == S0_DELAY100MS || state == S1_DELAY50MS || state == S3_DELAY120MS )
        cnt_150ms <= cnt_150ms + 1'b1;
    else
        cnt_150ms <= 23'd0;
        
//lcd_rst_high_flag
always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        lcd_rst_high_flag <= 1'b0;
    else if(state == S0_DELAY100MS && (cnt_150ms == TIME100MS - 1'b1))
        lcd_rst_high_flag <= 1'b1;
    else
        lcd_rst_high_flag <= 1'b0;

//lcd_rst
always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        lcd_rst <= 1'b0;
    else if(lcd_rst_high_flag)
        lcd_rst <= 1'b1;
    else
        lcd_rst <= lcd_rst;
//----------------------------------------------------------------- 
//cnt_s2_num決定要傳的命令/數(shù)據(jù)
always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        cnt_s2_num <= 7'd0;
    else if(state != S2_WR_90)
        cnt_s2_num <= 7'd0;
    else if(wr_done && state == S2_WR_90)
        cnt_s2_num <= cnt_s2_num + 1'b1;
    else
        cnt_s2_num <= cnt_s2_num;

//cnt_s2_num_done == 1'b1則S2_WR_90完成
always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        cnt_s2_num_done <= 1'b0;
    else if(cnt_s2_num == 7'd89 && wr_done == 1'b1)
        cnt_s2_num_done <= 1'b1;
    else
        cnt_s2_num_done <= 1'b0;
        
//init_data[8:0]
always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        init_data <= DATA_IDLE;
    else if(state == S2_WR_90)
        //初始化命令/數(shù)據(jù),直接借用廠家的
        case(cnt_s2_num)    //init_data[8] == 1'b1寫(xiě)數(shù)據(jù); == 1'b0寫(xiě)命令
                                        7'd0 :  init_data <= 9'h0CF ; 
            7'd1 :  init_data <= 9'h100 ;                        
            7'd2 :  init_data <= 9'h1C9 ;                        
            7'd3 :  init_data <= 9'h130 ;                        
                                        7'd4 :  init_data <= 9'h0ED ;  
            7'd5 :  init_data <= 9'h164 ;                        
            7'd6 :  init_data <= 9'h103 ;                        
            7'd7 :  init_data <= 9'h112 ;                        
            7'd8 :  init_data <= 9'h181 ;                        
                                        7'd9 :  init_data <= 9'h0E8 ;  
            7'd10:  init_data <= 9'h185 ;                        
            7'd11:  init_data <= 9'h110 ;                        
            7'd12:  init_data <= 9'h17A ;                        
                                        7'd13:  init_data <= 9'h0CB ;  
            7'd14:  init_data <= 9'h139 ;                        
            7'd15:  init_data <= 9'h12C ;                        
            7'd16:  init_data <= 9'h100 ;                        
            7'd17:  init_data <= 9'h134 ;                        
            7'd18:  init_data <= 9'h102 ;                        
                                        7'd19:  init_data <= 9'h0F7 ;  
            7'd20:  init_data <= 9'h120 ;                        
                                        7'd21:  init_data <= 9'h0EA ;  
            7'd22:  init_data <= 9'h100 ;                        
            7'd23:  init_data <= 9'h100 ;                        
                                        7'd24:  init_data <= 9'h0C0 ;  
            7'd25:  init_data <= 9'h11B ;                        
                                        7'd26:  init_data <= 9'h0C1 ;  
            7'd27:  init_data <= 9'h100 ;                        
                                        7'd28:  init_data <= 9'h0C5 ;  
            7'd29:  init_data <= 9'h130 ;                        
            7'd30:  init_data <= 9'h130 ;                        
                                        7'd31:  init_data <= 9'h0C7 ;  
            7'd32:  init_data <= 9'h1B7 ;                        
                                        7'd33:  init_data <= 9'h036 ;  
            7'd34:  init_data <= 9'h108 ;                        
                                        7'd35:  init_data <= 9'h03A ;  
            7'd36:  init_data <= 9'h155 ;                        
                                        7'd37:  init_data <= 9'h0B1 ;  
            7'd38:  init_data <= 9'h100 ;                        
            7'd39:  init_data <= 9'h11A ;                        
                                        7'd40:  init_data <= 9'h0B6 ;  
            7'd41:  init_data <= 9'h10A ;                        
            7'd42:  init_data <= 9'h1A2 ;                        
                                        7'd43:  init_data <= 9'h0F2 ;  
            7'd44:  init_data <= 9'h100 ;                        
                                        7'd45:  init_data <= 9'h026 ;  
            7'd46:  init_data <= 9'h101 ;                        
                                        7'd47:  init_data <= 9'h0E0 ;  
            7'd48:  init_data <= 9'h10F ;                        
            7'd49:  init_data <= 9'h12A ;                        
            7'd50:  init_data <= 9'h128 ;                        
            7'd51:  init_data <= 9'h108 ;                        
            7'd52:  init_data <= 9'h10E ;                        
            7'd53:  init_data <= 9'h108 ;                        
            7'd54:  init_data <= 9'h154 ;                        
            7'd55:  init_data <= 9'h1A9 ;                        
            7'd56:  init_data <= 9'h143 ;                        
            7'd57:  init_data <= 9'h10A ;                        
            7'd58:  init_data <= 9'h10F ;                        
            7'd59:  init_data <= 9'h100 ;                        
            7'd60:  init_data <= 9'h100 ;                        
            7'd61:  init_data <= 9'h100 ;                        
            7'd62:  init_data <= 9'h100 ;                        
                                        7'd63:  init_data <= 9'h0E1 ;  
            7'd64:  init_data <= 9'h100 ;                        
            7'd65:  init_data <= 9'h115 ;                        
            7'd66:  init_data <= 9'h117 ;                        
            7'd67:  init_data <= 9'h107 ;                        
            7'd68:  init_data <= 9'h111 ;                        
            7'd69:  init_data <= 9'h106 ;                        
            7'd70:  init_data <= 9'h12B ;                        
            7'd71:  init_data <= 9'h156 ;                        
            7'd72:  init_data <= 9'h13C ;                        
            7'd73:  init_data <= 9'h105 ;                        
            7'd74:  init_data <= 9'h110 ;                        
            7'd75:  init_data <= 9'h10F ;                        
            7'd76:  init_data <= 9'h13F ;                        
            7'd77:  init_data <= 9'h13F ;                        
            7'd78:  init_data <= 9'h10F ;                        
                                        7'd79:  init_data <= 9'h02B ;  
            7'd80:  init_data <= 9'h100 ;                        
            7'd81:  init_data <= 9'h100 ;                        
            7'd82:  init_data <= 9'h101 ;                        
            7'd83:  init_data <= 9'h13f ;                        
                                        7'd84:  init_data <= 9'h02A ;  
            7'd85:  init_data <= 9'h100 ;                        
            7'd86:  init_data <= 9'h100 ;                        
            7'd87:  init_data <= 9'h100 ;                        
            7'd88:  init_data <= 9'h1ef ;                        
                                        7'd89:  init_data <= 9'h011 ;  
            default: init_data <= DATA_IDLE;
        endcase
        
    else if(state == S4_WR_DIRECTION_CLEAR)
        case(cnt_s4_num)
            'd0 :  init_data <= 9'h029;
            //設(shè)置LCD顯示方向
            'd1 :  init_data <= 9'h036;
            'd2 :  init_data <= 9'h108;
            
            //LCD顯示窗口設(shè)置
            'd3 :  init_data <= 9'h02a;
                             
            'd4 :  init_data <= 9'h100;
            'd5 :  init_data <= 9'h100;
            'd6 :  init_data <= 9'h100;
            'd7 :  init_data <= 9'h1ef;
                             
            'd8 :  init_data <= 9'h02b;
                             
            'd9 :  init_data <= 9'h100;
            'd10:  init_data <= 9'h100;
            'd11:  init_data <= 9'h101;
            'd12:  init_data <= 9'h13f;
                             
            'd13:  init_data <= 9'h02c;
            
            //填充對(duì)應(yīng)點(diǎn)的顏色,可以換用比較明顯的紅色,便于觀察現(xiàn)象
            default : 
                //當(dāng)cnt_s4_num大于14且為偶數(shù)時(shí),傳輸顏色數(shù)據(jù)的高8位
                if(cnt_s4_num >= 'd14 && cnt_s4_num[0] == 0)
                    init_data <= {1'b1,WHITE[15:8]};
                //當(dāng)cnt_s4_num大于14且為奇數(shù)時(shí),傳輸顏色數(shù)據(jù)的低8位
                else if(cnt_s4_num >= 'd14 && cnt_s4_num[0] == 1)
                    init_data <= {1'b1,WHITE[7:0]};
                else
                    init_data <= DATA_IDLE;
        endcase
    else
        init_data <= DATA_IDLE;

//cnt_s4_num決定要傳的命令/數(shù)據(jù)
always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        cnt_s4_num <= 18'd0;
    else if(state != S4_WR_DIRECTION_CLEAR)
        cnt_s4_num <= 18'd0;
    else if(wr_done && state == S4_WR_DIRECTION_CLEAR)
        cnt_s4_num <= cnt_s4_num + 1'b1;
    else                   
        cnt_s4_num <= cnt_s4_num;

//cnt_s4_num_done
always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        cnt_s4_num_done <= 1'b0;
    else if(cnt_s4_num == TIMES4MAX && wr_done == 1'b1)
        cnt_s4_num_done <= 1'b1;
    else
        cnt_s4_num_done <= 1'b0;  
        
assign en_write = (state == S2_WR_90 || state == S4_WR_DIRECTION_CLEAR) ? 1'b1 : 1'b0;      

assign init_done = (state == DONE) ? 1'b1 : 1'b0;        
        
endmodule

六、仿真代碼

`timescale 1ns/1ns

module tb_lcd_init();

reg             sys_clk_50MHz;
reg             sys_rst_n    ;
reg             wr_done      ;

wire            lcd_rst      ;
wire    [8:0]   init_data    ;
wire            en_write     ;
wire            init_done    ;

reg     [1:0]   cnt1;

initial
begin
    sys_clk_50MHz <= 1'b1;
    sys_rst_n     <= 1'b0;
    wr_done       <= 1'b0;
    #100
    sys_rst_n     <= 1'b1;
end

always #10 sys_clk_50MHz <= ~sys_clk_50MHz;

always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        cnt1 <= 'd0;
    else if(en_write)
        cnt1 <= cnt1 + 1'b1;

always@(posedge sys_clk_50MHz or negedge sys_rst_n)
    if(!sys_rst_n)
        wr_done <= 1'b0;
    else if(cnt1 == 'd3)
        wr_done <= 1'b1;
    else
        wr_done <= 1'b0;

lcd_init    lcd_init_inst
(
    .sys_clk_50MHz (sys_clk_50MHz),
    .sys_rst_n     (sys_rst_n    ),
    .wr_done       (wr_done      ),
    
    .lcd_rst       (lcd_rst      ),
    .init_data     (init_data    ),
    .en_write      (en_write     ),
    .init_done     (init_done    )
);

endmodule

七、仿真波形圖

FPGA驅(qū)動(dòng)SPI接口的LCD(三)——LCD的初始化

?

到了這里,關(guān)于FPGA驅(qū)動(dòng)SPI接口的LCD(三)——LCD的初始化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 1.3寸OLED模塊初始化,驅(qū)動(dòng)芯片為SH1106,i2c通訊

    1.3寸OLED模塊初始化,驅(qū)動(dòng)芯片為SH1106,i2c通訊

    之前使用過(guò)0.96寸的OLED,驅(qū)動(dòng)芯片SSD1306,看了下兩個(gè)芯片數(shù)據(jù)手冊(cè),差異不是很大,買(mǎi)了一個(gè)1.3寸的,花了一個(gè)下午點(diǎn)亮了,在過(guò)程中遇到了些問(wèn)題,網(wǎng)上的資料不多,于是做個(gè)總結(jié)。 主要遇到的問(wèn)題有, 1.顯示不正常,出現(xiàn)花屏等現(xiàn)象。 從我遇到的情況來(lái)說(shuō),出現(xiàn)花屏可

    2024年02月12日
    瀏覽(22)
  • 【開(kāi)篇】STM32F103C8T6 含義、命名規(guī)則、GPIO原理以及初始化(參考男神江科協(xié),學(xué)習(xí)交流用)

    【開(kāi)篇】STM32F103C8T6 含義、命名規(guī)則、GPIO原理以及初始化(參考男神江科協(xié),學(xué)習(xí)交流用)

    目錄 目錄 一,STM系列命名規(guī)則 二.引腳功能 三.電路以及寄存器 1.產(chǎn)品系列: ? ? ? ? STM32代表意法半導(dǎo)體的Cortex-Mx系列內(nèi)核(ARM)32位的MCU 2.產(chǎn)品類(lèi)型: F-通用型,S-簡(jiǎn)單型,L-低功耗,H-高性能,AL-汽車(chē)應(yīng)用低功耗型,AF-汽車(chē)應(yīng)用通用型。 3.產(chǎn)品子系列: 103:ARM Cortex-M3內(nèi)核

    2024年01月17日
    瀏覽(98)
  • Hive初始化遇到的問(wèn)題:org.apache.hadoop.hive.metastore.HiveMetaException: 失敗加載驅(qū)動(dòng)程序

    Hive初始化遇到的問(wèn)題:org.apache.hadoop.hive.metastore.HiveMetaException: 失敗加載驅(qū)動(dòng)程序 在大數(shù)據(jù)領(lǐng)域,Hive是一個(gè)常用的數(shù)據(jù)倉(cāng)庫(kù)工具,它構(gòu)建在Hadoop之上,提供了一種類(lèi)似于SQL的查詢(xún)語(yǔ)言,用于處理大規(guī)模的數(shù)據(jù)集。然而,有時(shí)在Hive的初始化過(guò)程中,可能會(huì)遇到一些錯(cuò)誤。其中

    2024年02月08日
    瀏覽(27)
  • Hive初始化異常:org.apache.hadoop.hive.metastore.HiveMetaException: 加載驅(qū)動(dòng)程序大數(shù)據(jù)失敗

    近年來(lái),隨著大數(shù)據(jù)技術(shù)的快速發(fā)展,越來(lái)越多的企業(yè)開(kāi)始關(guān)注和運(yùn)用大數(shù)據(jù)處理和分析。然而,在使用Hive進(jìn)行大數(shù)據(jù)處理時(shí),有時(shí)會(huì)遇到一些問(wèn)題,比如在初始化過(guò)程中出現(xiàn)了加載驅(qū)動(dòng)程序大數(shù)據(jù)失敗的異常。本文將介紹這個(gè)異常的原因和解決方法,并提供相應(yīng)的源代碼示

    2024年02月04日
    瀏覽(36)
  • ZedBoard+AD9361_FPGA的PL端純邏輯(verilog)配置控制9361(一)_初始化寄存器腳本文件生成

    ZedBoard+AD9361_FPGA的PL端純邏輯(verilog)配置控制9361(一)_初始化寄存器腳本文件生成

    由于9361的寄存器較多,首先利用AD936X Evaluation Software 軟件,根據(jù)我們的項(xiàng)目需求,配置相應(yīng)的功能參數(shù),生成寄存器參數(shù)配置文件。 我建議大家選擇安裝AD936X Evaluation Software 2.1.3版本,下載安裝軟件,一路點(diǎn)擊下一步即可完成安裝。軟件安裝包:百度網(wǎng)盤(pán)? 提取碼:mww7 安裝

    2024年02月13日
    瀏覽(32)
  • Pytorch權(quán)重初始化/參數(shù)初始化

    refer: 【Pytorch】各網(wǎng)絡(luò)層的默認(rèn)初始化方法 https://blog.csdn.net/guofei_fly/article/details/105109883 其實(shí)Pytorch初始化方法就在各自的層的 def reset_parameters(self) - None: 方法中。 有人可能會(huì)問(wèn) 為什么這個(gè)方法和Pytorch直接出來(lái)的權(quán)重初始值不一樣 ?單步調(diào)試會(huì)發(fā)現(xiàn)其實(shí)這個(gè)方法運(yùn)行了至少兩

    2024年02月11日
    瀏覽(32)
  • Linux內(nèi)存初始化-啟動(dòng)階段的內(nèi)存初始化

    Linux內(nèi)存初始化-啟動(dòng)階段的內(nèi)存初始化

    本文代碼基于ARM64平臺(tái), Linux kernel 5.15 在加載kernel 之前, kernel對(duì)于系統(tǒng)是有一定要求的,明確規(guī)定了boot階段必須要把MMU關(guān)閉: 那么在進(jìn)入kernel之后, 就必須有一個(gè)使能MMU, 建立映射的過(guò)程, 本文描述kernel啟動(dòng)階段進(jìn)行內(nèi)存初始化相關(guān)的操作。 在初始化階段,我們mapping二段

    2024年02月08日
    瀏覽(25)
  • 深度學(xué)習(xí)參數(shù)初始化(二)Kaiming初始化 含代碼

    深度學(xué)習(xí)參數(shù)初始化(二)Kaiming初始化 含代碼

    目錄 一、介紹 二、基礎(chǔ)知識(shí) 三、Kaiming初始化的假設(shè)條件? 四、Kaiming初始化的簡(jiǎn)單的公式推導(dǎo) 1.前向傳播 2.反向傳播 五、Pytorch實(shí)現(xiàn) 深度學(xué)習(xí)參數(shù)初始化系列: (一)Xavier初始化 含代碼 (二)Kaiming初始化 含代碼 ????????Kaiming初始化論文地址:https://arxiv.org/abs/1502.01

    2024年02月04日
    瀏覽(19)
  • 【溫故而知新】JavaScript初始化/初始化加載

    在JavaScript中,對(duì)象、數(shù)組、函數(shù)、類(lèi)等都可以通過(guò)不同的方式進(jìn)行初始化。以下是幾種常見(jiàn)的初始化方式: 對(duì)象初始化: 使用字面量方式: 使用構(gòu)造函數(shù)方式: 數(shù)組初始化: 使用字面量方式: 使用構(gòu)造函數(shù)方式: 函數(shù)初始化: 類(lèi)初始化: 使用Array的of和from方法進(jìn)行數(shù)組

    2024年01月24日
    瀏覽(93)
  • 【隨機(jī)種子初始化】一個(gè)神經(jīng)網(wǎng)絡(luò)模型初始化的大坑

    【隨機(jī)種子初始化】一個(gè)神經(jīng)網(wǎng)絡(luò)模型初始化的大坑

    半年前寫(xiě)了一個(gè)模型,取得了不錯(cuò)的效果(簡(jiǎn)稱(chēng)項(xiàng)目文件1),于是整理了一番代碼,保存為了一個(gè)新的項(xiàng)目(簡(jiǎn)稱(chēng)項(xiàng)目文件2)。半年后的今天,我重新訓(xùn)練這個(gè)整理過(guò)的模型,即項(xiàng)目文件2,沒(méi)有修改任何的超參數(shù),并且保持完全一致的隨機(jī)種子,但是始終無(wú)法完全復(fù)現(xiàn)出半

    2024年02月09日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包