ZYNQ_project:LCD

 

 

模块框图:

时序图:

代码:

/*
// 24'h000000   4324 9Mhz   480*272
// 24'h800000   7084 33Mhz  800*480
// 24'h008080   7016 50Mhz  1024*600
// 24'h000080   4384 33Mhz  800*480
// 24'h800080   1018 70Mhz  1280*800
*/
module  rd_id(input       wire                sys_clk     ,input       wire                sys_rst_n   ,input       wire    [23:0]      lcd_rgb     , output      reg     [15:0]      lcd_id      
);reg                 rd_flag ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) rd_flag <= 1'b1 ;elserd_flag <= 1'b0 ;endalways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) lcd_id <= 24'd0 ;else if(rd_flag) begincase (lcd_rgb)24'h000000: lcd_id <= 16'd4324 ;24'h800000: lcd_id <= 16'd7084 ;24'h008080: lcd_id <= 16'd7016 ;24'h000080: lcd_id <= 16'd4384 ;24'h800080: lcd_id <= 16'd1018 ;default   : lcd_id <= 16'd1018 ;endcaseendendendmodule
module  clk_div(input       wire                sys_clk     ,input       wire                sys_rst_n   ,input       wire    [15:0]      lcd_id      ,output      reg                 clk_lcd     ,output      wire                rst_n       
);wire                clk_9Mhz    ; wire                clk_33Mhz   ;wire                clk_50Mhz   ;wire                clk_70Mhz   ;wire                locked      ;   assign  rst_n   = (sys_rst_n && locked) ;always @(*) begincase (lcd_id)16'd4324: clk_lcd <= clk_9Mhz  ;16'd7084: clk_lcd <= clk_33Mhz ;16'd7016: clk_lcd <= clk_50Mhz ;16'd4384: clk_lcd <= clk_33Mhz ;16'd1018: clk_lcd <= clk_70Mhz ;default : clk_lcd <= 1'b0      ;endcaseendpll pll_inst(.clk_in         ( sys_clk   ) ,.resetn         ( sys_rst_n ) ,.clk_9Mhz       ( clk_9Mhz  ) ,.clk_33Mhz      ( clk_33Mhz ) ,.clk_50Mhz      ( clk_50Mhz ) ,.clk_70Mhz      ( clk_70Mhz ) ,.locked         ( locked    ) 
);endmodule
// 根据传进来的有效图像坐标信息,产生有效的像素数据。
module lcd_display (input       wire                sys_clk     ,input       wire                sys_rst_n   ,input       wire    [10:0]      axi_x       ,input       wire    [10:0]      axi_y       ,input       wire    [10:0]      H_SYNC      ,input       wire    [10:0]      H_BACK      ,input       wire    [10:0]      H_DISP      ,input       wire    [10:0]      V_SYNC      ,input       wire    [10:0]      V_BACK      ,input       wire    [10:0]      V_DISP      ,output      reg     [23:0]      pix_data                    
);localparam  BLACK       = 24'h000000 , // 黑色WHITE       = 24'hFFFFFF , // 白色RosyBrown   = 24'hBC8F8F , // 玫瑰褐RED         = 24'hFF0000 , // 红色APRICOT     = 24'hE69966 , // 杏黄色VIOLET      = 24'h8B00FF , // 紫罗兰色LINEN       = 24'hFAF0E6 , // 亚麻色KHAKI       = 24'h996B1F , // 卡其色PEACH       = 24'hFFE5B4 , // 桃色GOLDEN      = 24'hFFD700 , // 金色SkyBule     = 24'h87CEEB ; // 天空蓝always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) pix_data <= BLACK ;else if((axi_y >= V_SYNC + V_BACK) && (axi_y <= V_SYNC + V_BACK + V_DISP - 1)) begin// 在场同步有效区间内if((axi_x >= H_SYNC + H_BACK) && (axi_x <= H_SYNC + H_BACK + H_DISP/10 - 1))  pix_data <= WHITE ; else if((axi_x >= H_SYNC + H_BACK + H_DISP/10) && (axi_x <= H_SYNC + H_BACK + (H_DISP/10)*2 - 1))pix_data <= BLACK ;else if((axi_x >= H_SYNC + H_BACK + (H_DISP/10)*2) && (axi_x <= H_SYNC + H_BACK + (H_DISP/10)*3 - 1))pix_data <= RosyBrown ;else if((axi_x >= H_SYNC + H_BACK + (H_DISP/10)*3) && (axi_x <= H_SYNC + H_BACK + (H_DISP/10)*4 - 1))pix_data <= APRICOT ;else if((axi_x >= H_SYNC + H_BACK + (H_DISP/10)*4) && (axi_x <= H_SYNC + H_BACK + (H_DISP/10)*5 - 1))pix_data <= RED ;else if((axi_x >= H_SYNC + H_BACK + (H_DISP/10)*5) && (axi_x <= H_SYNC + H_BACK + (H_DISP/10)*6 - 1))pix_data <= VIOLET ;else if((axi_x >= H_SYNC + H_BACK + (H_DISP/10)*6) && (axi_x <= H_SYNC + H_BACK + (H_DISP/10)*7 - 1))pix_data <= KHAKI ;elseif((axi_x >= H_SYNC + H_BACK + (H_DISP/10)*7) && (axi_x <= H_SYNC + H_BACK + (H_DISP/10)*8 - 1))pix_data <= PEACH ;elseif((axi_x >= H_SYNC + H_BACK + (H_DISP/10)*8) && (axi_x <= H_SYNC + H_BACK + (H_DISP/10)*9 - 1))pix_data <= GOLDEN ;elseif((axi_x >= H_SYNC + H_BACK + (H_DISP/10)*9) && (axi_x <= H_SYNC + H_BACK + (H_DISP/10)*10 - 1))pix_data <= SkyBule ;elsepix_data <= BLACK ;endelse  pix_data <= BLACK ;endendmodule
// 接口模块,产生接口时序。又名驱动模块。
// 产生像素信息,有效信号。其余信号直接赋值1
module lcd_driver (input       wire                sys_clk     ,input       wire                sys_rst_n   ,input       wire    [23:0]      pix_data    ,input       wire    [15:0]      lcd_id      ,output      wire    [10:0]      H_SYNCtoDIS ,output      wire    [10:0]      H_BACKtoDIS ,output      wire    [10:0]      H_DISPtoDIS ,output      wire    [10:0]      V_SYNCtoDIS ,output      wire    [10:0]      V_BACKtoDIS ,output      wire    [10:0]      V_DISPtoDIS ,output      reg                 lcd_de      ,output      wire    [23:0]      lcd_rgb_out ,output      wire                lcd_bl      ,output      wire                lcd_rstn    ,output      wire                lcd_hsync   ,output      wire                lcd_vsync   ,output      wire                lcd_clk     ,output      wire    [10:0]      axi_x       , output      wire    [10:0]      axi_y       
);// localparam
// 4.3' 480*272 localparam  H_SYNC_4342   =  11'd41     ,   H_BACK_4342   =  11'd2      ,    H_DISP_4342   =  11'd480    ,  H_FRONT_4342  =  11'd2      ,    H_TOTAL_4342  =  11'd525    ,  V_SYNC_4342   =  11'd10     ,   V_BACK_4342   =  11'd2      ,    V_DISP_4342   =  11'd272    ,  V_FRONT_4342  =  11'd2      ,    V_TOTAL_4342  =  11'd286    ,  // 7' 800*480   H_SYNC_7084   =  11'd128    ,  H_BACK_7084   =  11'd88     ,   H_DISP_7084   =  11'd800    ,  H_FRONT_7084  =  11'd40     ,   H_TOTAL_7084  =  11'd1056   , V_SYNC_7084   =  11'd2      ,    V_BACK_7084   =  11'd33     ,   V_DISP_7084   =  11'd480    ,  V_FRONT_7084  =  11'd10     ,   V_TOTAL_7084  =  11'd525    ,  // 7' 1024*600   H_SYNC_7016   =  11'd20     ,   H_BACK_7016   =  11'd140    ,  H_DISP_7016   =  11'd1024   , H_FRONT_7016  =  11'd160    ,  H_TOTAL_7016  =  11'd1344   , V_SYNC_7016   =  11'd3      ,    V_BACK_7016   =  11'd20     ,   V_DISP_7016   =  11'd600    ,  V_FRONT_7016  =  11'd12     ,   V_TOTAL_7016  =  11'd635    ,  // 10.1' 1280*800   H_SYNC_1018   =  11'd10     ,   H_BACK_1018   =  11'd80     ,   H_DISP_1018   =  11'd1280   , H_FRONT_1018  =  11'd70     ,   H_TOTAL_1018  =  11'd1440   , V_SYNC_1018   =  11'd3      ,    V_BACK_1018   =  11'd10     ,   V_DISP_1018   =  11'd800    ,  V_FRONT_1018  =  11'd10     ,   V_TOTAL_1018  =  11'd823    ,  // 4.3' 800*480   H_SYNC_4384   =  11'd128    ,  H_BACK_4384   =  11'd88     ,   H_DISP_4384   =  11'd800    ,  H_FRONT_4384  =  11'd40     ,   H_TOTAL_4384  =  11'd1056   , V_SYNC_4384   =  11'd2      ,    V_BACK_4384   =  11'd33     ,   V_DISP_4384   =  11'd480    ,  V_FRONT_4384  =  11'd10     ,   V_TOTAL_4384  =  11'd525    ;  // 不同分辨率时序参数不同reg     [10:0]      H_SYNC  ;reg     [10:0]      H_BACK  ;reg     [10:0]      H_DISP  ;reg     [10:0]      H_FRONT ;reg     [10:0]      H_TOTAL ;reg     [10:0]      V_SYNC  ;reg     [10:0]      V_BACK  ;reg     [10:0]      V_DISP  ;reg     [10:0]      V_FRONT ;reg     [10:0]      V_TOTAL ;// reg signal define reg     [10:0]      cnt_row ; // 行计数器,记录一行中的第几列。行计数器归零,说明一行扫描完。reg     [10:0]      cnt_col ; // 列计数器,记录一列中的第几行。列计数器归零,说明一帧图像扫描完。// wire signal definewire                valid_H ; // 行时序有效信号wire                valid_V ; // 列时序有效信号wire                valid_HV; // 图像有效信号,由于lcd_display模块中产生像素数据信息是时序逻辑,所以lcd_de信号要对图像有效信号打1拍。/**************************************************************************************************************************************main code*********************************************************************************************************************************/// 时序参数赋值always @(*) begincase(lcd_id)16'd4324:   beginH_SYNC  = H_SYNC_4342  ;H_BACK  = H_BACK_4342  ;H_DISP  = H_DISP_4342  ;H_FRONT = H_FRONT_4342 ;H_TOTAL = H_TOTAL_4342 ;V_SYNC  = V_SYNC_4342  ;V_BACK  = V_BACK_4342  ;V_DISP  = V_DISP_4342  ;V_FRONT = V_FRONT_4342 ;V_TOTAL = V_TOTAL_4342 ;end16'd7084:   beginH_SYNC  = H_SYNC_7084  ;H_BACK  = H_BACK_7084  ;H_DISP  = H_DISP_7084  ;H_FRONT = H_FRONT_7084 ;H_TOTAL = H_TOTAL_7084 ;V_SYNC  = V_SYNC_7084  ;V_BACK  = V_BACK_7084  ;V_DISP  = V_DISP_7084  ;V_FRONT = V_FRONT_7084 ;V_TOTAL = V_TOTAL_7084 ;end16'd7016:   beginH_SYNC  = H_SYNC_7016  ;H_BACK  = H_BACK_7016  ;H_DISP  = H_DISP_7016  ;H_FRONT = H_FRONT_7016 ;H_TOTAL = H_TOTAL_7016 ;V_SYNC  = V_SYNC_7016  ;V_BACK  = V_BACK_7016  ;V_DISP  = V_DISP_7016  ;V_FRONT = V_FRONT_7016 ;V_TOTAL = V_TOTAL_7016 ;end16'd4384:   beginH_SYNC  = H_SYNC_4384  ;H_BACK  = H_BACK_4384  ;H_DISP  = H_DISP_4384  ;H_FRONT = H_FRONT_4384 ;H_TOTAL = H_TOTAL_4384 ;V_SYNC  = V_SYNC_4384  ;V_BACK  = V_BACK_4384  ;V_DISP  = V_DISP_4384  ;V_FRONT = V_FRONT_4384 ;V_TOTAL = V_TOTAL_4384 ;end16'd1018:   beginH_SYNC  = H_SYNC_1018  ;H_BACK  = H_BACK_1018  ;H_DISP  = H_DISP_1018  ;H_FRONT = H_FRONT_1018 ;H_TOTAL = H_TOTAL_1018 ;V_SYNC  = V_SYNC_1018  ;V_BACK  = V_BACK_1018  ;V_DISP  = V_DISP_1018  ;V_FRONT = V_FRONT_1018 ;V_TOTAL = V_TOTAL_1018 ;enddefault :   beginH_SYNC  = H_SYNC_1018  ;H_BACK  = H_BACK_1018  ;H_DISP  = H_DISP_1018  ;H_FRONT = H_FRONT_1018 ;H_TOTAL = H_TOTAL_1018 ;V_SYNC  = V_SYNC_1018  ;V_BACK  = V_BACK_1018  ;V_DISP  = V_DISP_1018  ;V_FRONT = V_FRONT_1018 ;V_TOTAL = V_TOTAL_1018 ;endendcaseend// // reg signal define // reg     [10:0]      cnt_row ; // 行计数器,记录一行中的第几列。行计数器归零,说明一行扫描完。always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_row <= 11'd0 ;else if(cnt_row == (H_TOTAL - 1))cnt_row <= 11'd0 ;else cnt_row <= cnt_row + 1'b1 ;end// reg     [10:0]      cnt_col ; // 列计数器,记录一列中的第几行。列计数器归零,说明一帧图像扫描完。always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_col <= 11'd0 ;else if((cnt_col == (V_TOTAL - 1)) && (cnt_row == (H_TOTAL - 1)))cnt_col <= 11'd0 ;else if(cnt_row == (H_TOTAL - 1))cnt_col <= cnt_col + 1'b1 ;else cnt_col <= cnt_col ;end// // wire signal define// wire                valid_H ; // 行时序有效信号assign  valid_H = ((cnt_row >= H_SYNC + H_BACK) && (cnt_row <= H_SYNC + H_BACK + H_DISP - 1)) ? 1'b1 : 1'b0 ;// wire                valid_V ; // 列时序有效信号assign  valid_V = ((cnt_col >= V_SYNC + V_BACK) && (cnt_col <= V_SYNC + V_BACK + V_DISP - 1)) ? 1'b1 : 1'b0 ;// wire                valid_HV; // 图像有效信号,由于lcd_display模块中产生像素数据信息是时序逻辑,所以lcd_de信号要对图像有效信号打1拍。assign  valid_HV = (valid_H && valid_V) ;// output      wire    [10:0]      axi_x       , assign  axi_x = (valid_HV) ? cnt_row : 11'd0 ;// output      wire    [10:0]      axi_y       ,assign  axi_y = (valid_HV) ? cnt_col : 11'd0 ;// output      wire    [23:0]      lcd_rgb_out ,assign  lcd_rgb_out = pix_data  ;// output      reg                 lcd_de      ,always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) lcd_de <= 1'b0 ;else lcd_de <= valid_HV ;end// 本实验没用到的信号,赋值1;assign  lcd_bl    = 1'b1 ;assign  lcd_rstn  = 1'b1 ;assign  lcd_hsync = 1'b1 ;assign  lcd_vsync = 1'b1 ;assign  lcd_clk   = (sys_rst_n == 1'b1) ? sys_clk : 1'b0 ;// 传给像素数据生成模块的时序参数assign  H_SYNCtoDIS = H_SYNC ;assign  H_BACKtoDIS = H_BACK ;assign  H_DISPtoDIS = H_DISP ;assign  V_SYNCtoDIS = V_SYNC ;assign  V_BACKtoDIS = V_BACK ;assign  V_DISPtoDIS = V_DISP ;endmodule

module top (input		wire				sys_clk		,input		wire				sys_rst_n	,inout       wire    [23:0]      lcd_rgb     ,output      wire                lcd_de      ,output      wire                lcd_bl      ,output      wire                lcd_rstn    ,output      wire                lcd_hsync   ,output      wire                lcd_vsync   ,output      wire                lcd_clk        
);// inoutwire    [23:0]      lcd_rgb_out ;wire    [23:0]      lcd_rgb_in  ;assign              lcd_rgb     = (lcd_de) ? lcd_rgb_out : 24'dz ;assign              lcd_rgb_in  = lcd_rgb                        ;// 例化间连线wire    [15:0]      lcd_id      ;wire                clk_lcd     ;wire                rst_n       ;wire    [10:0]      H_SYNCtoDIS ;wire    [10:0]      H_BACKtoDIS ;wire    [10:0]      H_DISPtoDIS ;wire    [10:0]      V_SYNCtoDIS ;wire    [10:0]      V_BACKtoDIS ;wire    [10:0]      V_DISPtoDIS ;wire    [10:0]      axi_x       ; wire    [10:0]      axi_y       ;wire    [23:0]      pix_data    ;    rd_id rd_id_inst(.sys_clk                    ( sys_clk       ) ,.sys_rst_n                  ( sys_rst_n     ) ,.lcd_rgb                    ( lcd_rgb_in    ) , .lcd_id                     ( lcd_id        ) 
);clk_div clk_div_inst(.sys_clk                    ( sys_clk       ) ,.sys_rst_n                  ( sys_rst_n     ) ,.lcd_id                     ( lcd_id        ) ,.clk_lcd                    ( clk_lcd       ) ,.rst_n                      ( rst_n         )  
);lcd_driver lcd_driver_inst(.sys_clk                    ( clk_lcd       ) ,.sys_rst_n                  ( rst_n         ) ,.pix_data                   ( pix_data      ) ,.lcd_id                     ( lcd_id        ) ,.H_SYNCtoDIS                ( H_SYNCtoDIS   ) ,.H_BACKtoDIS                ( H_BACKtoDIS   ) ,.H_DISPtoDIS                ( H_DISPtoDIS   ) ,.V_SYNCtoDIS                ( V_SYNCtoDIS   ) ,.V_BACKtoDIS                ( V_BACKtoDIS   ) ,.V_DISPtoDIS                ( V_DISPtoDIS   ) ,.lcd_de                     ( lcd_de        ) ,.lcd_rgb_out                ( lcd_rgb_out   ) ,.lcd_bl                     ( lcd_bl        ) ,.lcd_rstn                   ( lcd_rstn      ) ,.lcd_hsync                  ( lcd_hsync     ) ,.lcd_vsync                  ( lcd_vsync     ) ,.lcd_clk                    ( lcd_clk       ) ,.axi_x                      ( axi_x         ) , .axi_y                      ( axi_y         )  
);lcd_display lcd_display_inst(.sys_clk                    ( clk_lcd       ) ,.sys_rst_n                  ( rst_n         ) ,.axi_x                      ( axi_x         ) , .axi_y                      ( axi_y         ) ,.H_SYNC                     ( H_SYNCtoDIS   ) ,.H_BACK                     ( H_BACKtoDIS   ) ,.H_DISP                     ( H_DISPtoDIS   ) ,.V_SYNC                     ( V_SYNCtoDIS   ) ,.V_BACK                     ( V_BACKtoDIS   ) ,.V_DISP                     ( V_DISPtoDIS   ) ,.pix_data                   ( pix_data      )                    
);endmodule

`timescale 1ns/1ns
module test_top();reg                 sys_clk     ;reg                 sys_rst_n   ;wire    [23:0]      lcd_rgb     ;wire                lcd_de      ;wire                lcd_bl      ;wire                lcd_rstn    ;wire                lcd_hsync   ;wire                lcd_vsync   ;wire                lcd_clk     ;assign  lcd_rgb = lcd_de ?  {24{1'bz}} :  24'h80;top top_inst(.sys_clk	        ( sys_clk   ) ,.sys_rst_n	        ( sys_rst_n ) ,.lcd_rgb            ( lcd_rgb   ) ,.lcd_de             ( lcd_de    ) ,.lcd_bl             ( lcd_bl    ) ,.lcd_rstn           ( lcd_rstn  ) ,.lcd_hsync          ( lcd_hsync ) ,.lcd_vsync          ( lcd_vsync ) ,.lcd_clk            ( lcd_clk   )  
);parameter CYCLE = 20 ;initial beginsys_clk    = 1'b1 ;sys_rst_n <= 1'b0 ;#( CYCLE * 10 )   ;#2                ;sys_rst_n <= 1'b1 ;#( CYCLE * 1000 ) ;$stop             ;endalways #( CYCLE / 2 ) sys_clk = ~sys_clk ;endmodule

仿真:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/155233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决java在idea运行正常,但是打成jar包后中文乱码问题

目录 比如&#xff1a; 打包命令使用utf-8编码&#xff1a; 1.当在idea中编写的程序,运行一切正常.但是当被打成jar包时,执行的程序会中文乱码.产生问题的原因和解决方案是什么呢? 一.问题分析 分别使用idea和jar包形式打印出System中所有的jvm参数---代码如下: public static…

【设计模式】行为型设计模式

行为型设计模式 文章目录 行为型设计模式一、概述二、责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;三、命令模式&#xff08;Command Pattern&#xff09;四、解释器模式&#xff08;Interpreter Pattern&#xff09;五、迭代器模式&#xff08;Iterato…

Stable Diffusion专场公开课

从SD原理、本地部署到其二次开发 分享时间&#xff1a;11月25日14&#xff1a;00-17&#xff1a;00 分享大纲 从扩散模型DDPM起步理解SD背后原理 SD的本地部署:在自己电脑上快速搭建、快速出图如何基于SD快速做二次开发(以七月的AIGC模特生成系统为例) 分享人简介 July&#…

HelpLook VS Zendesk:哪种知识库软件更适合您的业务

为任何组织创造一个开放且协作的环境至关重要。然而&#xff0c;高水平的员工每周可能会花费多达30个小时处理电子邮件和协作&#xff0c;对他们的工作效率产生了重大影响。 为了解决这个挑战&#xff0c;建立一种高效的信息共享方法至关重要&#xff0c;不会妨碍团队的生产力…

福州大学《嵌入式系统综合设计》实验三:多媒体开发基础编程

一、实验目的 本实验基于搭建好的开发环境和硬件环境&#xff0c;通过编写简单的通信实验&#xff0c;验证开发环境&#xff0c;掌握多媒体开发编程基础&#xff0c;包括SOCKET编程、多线程编程和线程同步知识。 二、实验内容 基于套接字、多线程、同步锁机制实现多媒体文件…

循环链表3

插入函数——插入数据&#xff0c;在链表plsit的pos位置插入val数据元素 位置pos&#xff08;在无特别说明的情况下&#xff09;是从0开始计数的 要改变链表结构&#xff0c;就要依赖前驱&#xff0c;每个前驱的next存储着下一个数据结点的地址&#xff0c;也就是依靠前驱的ne…

netty整合websocket(完美教程)

websocket的介绍&#xff1a; WebSocket是一种在网络通信中的协议&#xff0c;它是独立于HTTP协议的。该协议基于TCP/IP协议&#xff0c;可以提供双向通讯并保有状态。这意味着客户端和服务器可以进行实时响应&#xff0c;并且这种响应是双向的。WebSocket协议端口通常是80&am…

FPGA——IP核 基础操作

FPGA——IP核 基础操作 IP核例化模块时钟IP核RAM IP核 IP核例化模块 找到模版 加入代码中 时钟IP核 配置模式功能 配置输入时钟 输出配置 RAM IP核

海外IP代理科普——API代理是什么?怎么用?

随着互联网的不断发展&#xff0c;越来越多的企业开始使用API&#xff08;应用程序接口&#xff09;来实现数据的共享和交流。而在API使用中&#xff0c;海外代理IP也逐渐普及。那么&#xff0c;什么是API代理IP呢&#xff1f;它有什么作用&#xff1f;API接口有何用处&#xf…

从0开始学习JavaScript--JavaScript 函数

JavaScript中的函数是编写可维护、模块化代码的关键。本文将深入研究JavaScript函数的各个方面&#xff0c;包括基本语法、函数作用域、闭包、高阶函数、箭头函数等&#xff0c;并通过丰富的示例代码来帮助读者更好地理解和应用这些概念。 函数的基本语法 函数是一段可被重复…

openGauss学习笔记-129 openGauss 数据库管理-参数设置-查看参数值

文章目录 openGauss学习笔记-129 openGauss 数据库管理-参数设置-查看参数值129.1 操作步骤129.2 示例 openGauss学习笔记-129 openGauss 数据库管理-参数设置-查看参数值 openGauss安装后&#xff0c;有一套默认的运行参数&#xff0c;为了使openGauss与业务的配合度更高&…

C#学习相关系列之Linq用法---where和select用法(二)

一、select用法 Linq中的select可以便捷使我们的对List中的每一项进行操作&#xff0c;生成新的列表。 var ttlist.select(p>p10); //select括号内为List中的每一项&#xff0c;p10即为对每一项的操作&#xff0c;即对每项都加10生成新的List 用法实例&#xff1a; 1、la…

SpringCloud原理-OpenFeign篇(三、FeignClient的动态代理原理)

文章目录 前言正文一、前戏&#xff0c;FeignClientFactoryBean入口方法的分析1.1 从BeanFactory入手1.2 AbstractBeanFactory#doGetBean(...)中对FactoryBean的处理1.3 结论 FactoryBean#getObject() 二、FeignClientFactoryBean实现的getObject()2.1 FeignClientFactoryBean#…

oepnpnp - 自己出图做开口扳手

文章目录 oepnpnp - 自己出图做开口扳手概述笔记做好的一套扳手实拍美图工程图END oepnpnp - 自己出图做开口扳手 概述 我的openpnp设备顶部相机安装支架, 由于结构限制, 螺柱的安装位置和机械挂壁的距离太近了. 导致拧紧(手工或者工具)很困难. 也不能重新做相机支架, 因为将…

构建和应用卡尔曼滤波器 (KF)--扩展卡尔曼滤波器 (EKF)

作为一名数据科学家&#xff0c;我们偶尔会遇到需要对趋势进行建模以预测未来值的情况。虽然人们倾向于关注基于统计或机器学习的算法&#xff0c;但我在这里提出一个不同的选择&#xff1a;卡尔曼滤波器&#xff08;KF&#xff09;。 1960 年代初期&#xff0c;Rudolf E. Kal…

腾讯云CVM标准型S5性能如何?CPU采用什么型号?

腾讯云服务器CVM标准型S5实例具有稳定的计算性能&#xff0c;CVM 2核2G S5活动优惠价格280.8元一年自带1M带宽&#xff0c;15个月313.2元、2核4G配置748.2元15个月&#xff0c;CPU内存配置还可以选择4核8G、8核16G等配置&#xff0c;公网带宽可选1M、3M、5M或10M&#xff0c;腾…

传输层——UDP协议

文章目录 一.传输层1.再谈端口号2.端口号范围划分3.认识知名端口号4.两个问题5.netstat与iostat6.pidof 二.UDP协议1.UDP协议格式2.UDP协议的特点3.面向数据报4.UDP的缓冲区5.UDP使用注意事项6.基于UDP的应用层协议 一.传输层 在学习HTTP等应用层协议时&#xff0c;为了便于理…

【Python】可再生能源发电与电动汽车的协同调度策略研究

1 主要内容 之前发布了《可再生能源发电与电动汽车的协同调度策略研究》matlab版本程序&#xff0c;本次发布的为Python版本&#xff0c;采用gurobi作为求解器&#xff0c;有需要的可以下载对照学习研究。 首先详细介绍了优化调度模型的求解方案&#xff0c;分别采用二次规划…

初识linux(1)

文章目录 什么是linux什么是操作系统&#xff1f;开源 怎么装linux的环境基础指令lspwdcdtouchmkdirrmdir与rmmancpmv 什么是linux linux是一款开源操作系统 什么是操作系统&#xff1f; 操作系统&#xff1a;一种对计算机所有计算机软硬件进行控制和管理的系统软件 开源 开源&…

centos7卸载mongodb数据重新安装时无法安装的问题

如果卸载不干净直接用 sudo find / -name mongo 查询所有关于mongo的文件&#xff0c;然后一个个去删除。 当然最好的办法还是去看日志信息。 直接去查看日志信息 sudo cat /var/log/mongodb/mongod.log 根据提示信息说这个没有权限操作 直接删除即可&#xff0c;都是之前…