当前位置: 首页 > news >正文

状态机的练习:按键控制led灯

设计思路:

三个按键控制led输出。

三个按键经过滤波(消抖),产生三个按键标志信号。

三个led数据的产生模块(流水,跑马,闪烁模块),分别产生led信号。

这六路信号(三路按键信号,三路led信号),接入state_led_ctrl模块,进行led_out的控制。

状态机:

 

模块框图:

代码:

/*1位按键消抖
*/ 
module key_filter (input       wire            sys_clk     ,input       wire            sys_rst_n   ,input       wire            key_in      ,output      reg             key_flag    
);// 参数定义parameter   MAX_CNT_10MS = 500_000   ;localparam  IDLE         = 4'b0001   ,FILTER_UP    = 4'b0010   ,SAMPLING     = 4'b0100   ,FILTER_BACK  = 4'b1000   ;// reg signal define reg                 key_in_r1 ;  reg                 key_in_r2 ;reg     [18:0]      cnt_core  ;reg     [3:0]       state_c   ;reg     [3:0]       state_n   ;// wire signal define wire                nege                  ;wire                pose                  ;wire                IDLEtoFILTER_UP       ;wire                FILTER_UPtoIDLE       ;wire                FILTER_UPtoSAMPLING   ;wire                SAMPLINGtoFILTER_BACK ;wire                FILTER_BACKtoIDLE     ;wire                filter_done           ; /******************************************************************/// reg                 key_in_r1 ; always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) key_in_r1 <= 1'b1 ;elsekey_in_r1 <= key_in ;end // reg                 key_in_r2 ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) key_in_r2 <= 1'b1 ;elsekey_in_r2 <= key_in_r1 ;end // wire                nege      ;assign  nege = ~key_in_r1 &&  key_in_r2 ;// wire                pose      ;  assign  pose =  key_in_r1 && ~key_in_r2 ;// reg     [3:0]       state_c   ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) state_c <= IDLE ;elsestate_c <= state_n ;end// reg     [3:0]       state_n   ;always @(*) begincase(state_c)IDLE      : if(IDLEtoFILTER_UP)state_n = FILTER_UP ;else state_n = IDLE ;FILTER_UP : if(FILTER_UPtoIDLE)state_n = IDLE ;else if(FILTER_UPtoSAMPLING)state_n = SAMPLING ;else state_n = FILTER_UP ;SAMPLING  : if(SAMPLINGtoFILTER_BACK)state_n = FILTER_BACK ;else state_n = SAMPLING ;FILTER_BACK:if(FILTER_BACKtoIDLE)state_n = IDLE ;elsestate_n = FILTER_BACK ;default   :     state_n = IDLE ;endcaseendassign  IDLEtoFILTER_UP         = (state_c == IDLE)       && (nege) ;assign  FILTER_UPtoIDLE         = (state_c == FILTER_UP)  && (pose) ;assign  FILTER_UPtoSAMPLING     = (state_c == FILTER_UP)  && (filter_done) ;assign  SAMPLINGtoFILTER_BACK   = (state_c == SAMPLING)   && (pose) ;assign  FILTER_BACKtoIDLE       = (state_c == FILTER_BACK)&& (filter_done) ;// reg     [18:0]      cnt_core  ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_core <= 19'd0 ;elsecase (state_c)IDLE       :cnt_core <= 19'd0 ; FILTER_UP  :if(filter_done)cnt_core <= 19'd0 ;else cnt_core <= cnt_core + 1'b1 ;SAMPLING   :cnt_core <= 19'd0 ; FILTER_BACK:if(filter_done)cnt_core <= 19'd0 ;else cnt_core <= cnt_core + 1'b1 ;default    :    cnt_core <= 19'd0 ;endcaseend// wire                filter_doneassign  filter_done = (cnt_core == MAX_CNT_10MS - 1) ;// output reg key_flagalways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) key_flag <= 1'b0 ;else if(FILTER_UPtoSAMPLING)key_flag <= ~key_in_r2 ;else key_flag <= 1'b0 ;endendmodule

 

module led_paoma (input		wire				sys_clk      ,input		wire				sys_rst_n    ,output		reg     [3:0]       led_out     
);parameter   MAX_CNT_500MS = 25_000_000 ;// reg signal definereg     [24:0]      cnt_500ms ;reg     [ 1:0]      cnt_state ;// wire signal definewire                add_cnt_500ms ;wire                end_cnt_500ms ;wire                add_cnt_state ;wire                end_cnt_state ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/// reg     [24:0]      cnt_500ms ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_500ms <= 25'd0 ;else if(add_cnt_500ms) beginif(end_cnt_500ms)cnt_500ms <= 25'd0 ;else cnt_500ms <= cnt_500ms + 1'b1 ;endelse cnt_500ms <= 25'd0 ;end// reg     [ 1:0]      cnt_state ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_state <= 2'd0 ;else if(add_cnt_state) beginif(end_cnt_state)cnt_state <= 2'd0 ;else cnt_state <= cnt_state + 1'b1 ;end else cnt_state <= cnt_state ;end// // wire signal define// wire                add_cnt_500ms ;assign  add_cnt_500ms = 1'b1 ;// wire                end_cnt_500ms ;assign  end_cnt_500ms = add_cnt_500ms && (cnt_500ms == (MAX_CNT_500MS - 1)) ;// wire                add_cnt_state ;assign  add_cnt_state = end_cnt_500ms ;// wire                end_cnt_state ;assign  end_cnt_state = ((add_cnt_state && (cnt_state == 2'b11 )) ) ; // output reg [3:0]     led_out always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) led_out <= 4'b0000 ;else case (cnt_state)2'b00 :     led_out <= 4'b0001 ;2'b01 :     led_out <= 4'b0010 ;2'b10 :     led_out <= 4'b0100 ;2'b11 :     led_out <= 4'b1000 ;default:    led_out <= 4'b0000 ;endcaseend
endmodule

 

module shanshuo (input		wire				sys_clk      ,input		wire				sys_rst_n    ,output		reg     [3:0]       led_out     
);parameter   MAX_CNT_500MS = 25_000_000 ;// reg signal definereg     [24:0]      cnt_500ms ;// wire signal definewire                add_cnt_500ms ;wire                end_cnt_500ms ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/// reg     [24:0]      cnt_500ms ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_500ms <= 25'd0 ;else if(add_cnt_500ms) beginif(end_cnt_500ms)cnt_500ms <= 25'd0 ;else cnt_500ms <= cnt_500ms + 1'b1 ;endelse cnt_500ms <= 25'd0 ;end// // wire signal define// wire                add_cnt_500ms ;assign  add_cnt_500ms = 1'b1 ;// wire                end_cnt_500ms ;assign  end_cnt_500ms = add_cnt_500ms && (cnt_500ms == (MAX_CNT_500MS - 1)) ;// output reg [3:0]     led_out always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) led_out <= 4'b0000 ;else if(end_cnt_500ms)led_out <= ~led_out ;else led_out <=  led_out ;endendmodule

 

module led_water (input		wire				sys_clk      ,input		wire				sys_rst_n    ,output		reg     [3:0]       led_out     
);parameter   MAX_CNT_500MS = 25_000_000 ;// reg signal definereg     [24:0]      cnt_500ms ;reg     [ 2:0]      cnt_state ; // wire signal definewire                add_cnt_500ms ;wire                end_cnt_500ms ;wire                add_cnt_state ;wire                end_cnt_state ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/// reg     [24:0]      cnt_500ms ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_500ms <= 25'd0 ;else if(add_cnt_500ms) beginif(end_cnt_500ms)cnt_500ms <= 25'd0 ;else cnt_500ms <= cnt_500ms + 1'b1 ;endelse cnt_500ms <= 25'd0 ;end// reg     [ 1:0]      cnt_state ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_state <= 2'd0 ;else if(add_cnt_state) beginif(end_cnt_state)cnt_state <= 2'd0 ;else cnt_state <= cnt_state + 1'b1 ;end else cnt_state <= cnt_state ;end// // wire signal define// wire                add_cnt_500ms ;assign  add_cnt_500ms = 1'b1 ;// wire                end_cnt_500ms ;assign  end_cnt_500ms = add_cnt_500ms && (cnt_500ms == (MAX_CNT_500MS - 1)) ;// wire                add_cnt_state ;assign  add_cnt_state = end_cnt_500ms ;// && led_flag// wire                end_cnt_state ;assign  end_cnt_state = ((add_cnt_state && (cnt_state == 3'b101 )) ) ; // output reg [3:0]     led_out always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) led_out <= 4'b0000 ;else case (cnt_state)3'b000 :     led_out <= 4'b0001 ;3'b001 :     led_out <= 4'b0010 ;3'b010 :     led_out <= 4'b0100 ;3'b011 :     led_out <= 4'b1000 ;3'b100 :     led_out <= 4'b0100 ;3'b101 :     led_out <= 4'b0010 ;default:     led_out <= 4'b0000 ;endcaseend
endmodule

 

module state_led_ctrl (input		wire				sys_clk         ,input		wire				sys_rst_n       ,input       wire                water_flag      ,input       wire                paoma_flag      ,input       wire                shanshuo_flag   ,input       wire    [3:0]       led_water       ,input       wire    [3:0]       led_paoma       ,input       wire    [3:0]       led_shanshuo    ,output	    reg     [3:0]       led_out         
);localparam          IDLE        = 4'b0001 ,WATER       = 4'b0010 ,PAOMA       = 4'b0100 ,SHANSHUO    = 4'b1000 ;// reg signal definereg     [3:0]       state_c ;reg     [3:0]       state_n ;// wire signalwire                IDLEtoWATER         ;wire                IDLEtoPAOMA         ;wire                IDLEtoSHANSHUO      ;wire                WATERtoPAOMA        ;wire                WATERtoSHANSHUO     ;wire                PAOMAtoWATER        ;wire                PAOMAtoSHANSHUO     ;wire                SHANSHUOtoPAOMA     ;wire                SHANSHUOtoWATER     ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/// // reg signal define// reg         state_c ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) state_c <= IDLE ;elsestate_c <= state_n ;end// reg         state_n ;always @(*) begincase(state_c)IDLE     :  if(IDLEtoWATER)state_n = WATER ;else if(IDLEtoPAOMA)state_n = PAOMA ;else if(IDLEtoSHANSHUO)state_n = SHANSHUO ;else state_n = IDLE ;WATER    :  if(WATERtoPAOMA)state_n = PAOMA ;else if(WATERtoSHANSHUO)state_n = SHANSHUO ;else state_n = WATER ;PAOMA    :  if(PAOMAtoWATER)state_n = WATER ;else if(PAOMAtoSHANSHUO)state_n = SHANSHUO ;else state_n = PAOMA ;SHANSHUO :  if(SHANSHUOtoPAOMA)state_n = PAOMA ;else if(SHANSHUOtoWATER)state_n = WATER ;else state_n = SHANSHUO ;default  :  state_n = IDLE ;endcaseendassign  IDLEtoWATER         = (state_c == IDLE      ) && (water_flag   ) ;assign  IDLEtoPAOMA         = (state_c == IDLE      ) && (paoma_flag   ) ;assign  IDLEtoSHANSHUO      = (state_c == IDLE      ) && (shanshuo_flag) ;assign  WATERtoPAOMA        = (state_c == WATER     ) && (paoma_flag   ) ;assign  WATERtoSHANSHUO     = (state_c == WATER     ) && (shanshuo_flag) ;assign  PAOMAtoWATER        = (state_c == PAOMA     ) && (water_flag   ) ;assign  PAOMAtoSHANSHUO     = (state_c == PAOMA     ) && (shanshuo_flag) ;assign  SHANSHUOtoPAOMA     = (state_c == SHANSHUO  ) && (paoma_flag   ) ;assign  SHANSHUOtoWATER     = (state_c == SHANSHUO  ) && (water_flag   ) ;// led_outalways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) led_out <= 4'hf ;else case (state_c)IDLE    :   led_out <= 4'hf ;WATER   :   led_out <= led_water    ;PAOMA   :   led_out <= led_paoma    ;SHANSHUO:   led_out <= led_shanshuo ;default:    led_out <= 4'hf ;endcaseendendmodule

 

module top (input		wire				sys_clk         ,input		wire				sys_rst_n       ,input       wire                key_water       ,input       wire                key_paoma       ,input       wire                key_shanshuo    ,output		wire    [3:0]       led_out         
);// inst wirewire                water_flag      ;wire                paoma_flag      ;wire                shanshuo_flag   ;wire    [3:0]       led_water       ;wire    [3:0]       led_paoma       ;wire    [3:0]       led_shanshuo    ;// inst
key_filter key_filter_inst_water(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.key_in                 ( key_water     ) ,.key_flag               ( water_flag    )  
);key_filter key_filter_inst_paoma(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.key_in                 ( key_paoma     ) ,.key_flag               ( paoma_flag    )  
);key_filter key_filter_inst_shanshuo(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.key_in                 ( key_shanshuo  ) ,.key_flag               ( shanshuo_flag )  
);led_water led_water_isnt (.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.led_out                ( led_water     )  
);led_paoma led_paoma_inst(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.led_out                ( led_paoma     )  
);shanshuo shanshuo_inst(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.led_out                ( led_shanshuo  )  
);state_led_ctrl state_led_ctrl_inst(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.water_flag             ( water_flag    ) ,.paoma_flag             ( paoma_flag    ) ,.shanshuo_flag          ( shanshuo_flag ) ,.led_water              ( led_water     ) ,.led_paoma              ( led_paoma     ) ,.led_shanshuo           ( led_shanshuo  ) ,.led_out                ( led_out       )  
);endmodule

 

仿真:

`timescale 1ns/1ns
module test_top ();reg 				sys_clk         ;reg 				sys_rst_n       ;reg                 key_water       ;reg                 key_paoma       ;reg                 key_shanshuo    ;wire    [3:0]       led_out         ;top top_inst(.sys_clk            ( sys_clk       ) ,.sys_rst_n          ( sys_rst_n     ) ,.key_water          ( key_water     ) ,.key_paoma          ( key_paoma     ) ,.key_shanshuo       ( key_shanshuo  ) ,.led_out            ( led_out       )  
);defparam    top_inst.key_filter_inst_water.MAX_CNT_10MS     = 50 ;defparam    top_inst.key_filter_inst_paoma.MAX_CNT_10MS     = 50 ;defparam    top_inst.key_filter_inst_shanshuo.MAX_CNT_10MS  = 50 ;defparam    top_inst.led_water_isnt.MAX_CNT_500MS           = 50 ;defparam    top_inst.led_paoma_inst.MAX_CNT_500MS           = 50 ;defparam    top_inst.shanshuo_inst.MAX_CNT_500MS            = 50 ;parameter   CYCLE = 20 ;initial beginsys_clk      = 1'b1 ;sys_rst_n   <= 1'b1 ;key_water   <= 1'b1 ;key_paoma   <= 1'b1 ;key_shanshuo<= 1'b1 ;#( CYCLE * 10 )     ;sys_rst_n <= 1'b0   ;#( 200 )            ;sys_rst_n <= 1'b1   ;#( CYCLE * 10 )     ;key_water <= 1'b0   ;#( CYCLE * 100 )    ;key_water <= 1'b1   ;#( CYCLE * 1000 )   ;key_paoma <= 1'b0   ;#( CYCLE * 100 )    ;key_paoma <= 1'b1   ;#( CYCLE * 1000 )   ;key_shanshuo <= 1'b0;#( CYCLE * 100 )    ;key_shanshuo <= 1'b1;#( CYCLE * 1000 )   ;$stop               ;endalways #( CYCLE / 2 ) sys_clk = ~sys_clk ;endmodule

相关文章:

状态机的练习:按键控制led灯

设计思路&#xff1a; 三个按键控制led输出。 三个按键经过滤波(消抖)&#xff0c;产生三个按键标志信号。 三个led数据的产生模块&#xff08;流水&#xff0c;跑马&#xff0c;闪烁模块&#xff09;&#xff0c;分别产生led信号。 这六路信号&#xff08;三路按键信号&am…...

看图学源码之 CopyOnWriteArraySet源码分析

基本介绍 使用内部CopyOnWriteArrayList进行所有操作的Set 特点 它最适合以下应用程序&#xff1a;集合大小通常较小、只读操作的数量远远多于可变操作&#xff0c;并且您需要在遍历期间防止线程之间的干扰。它是线程安全的。突变操作&#xff08; add 、 set 、 remove等&…...

almaLinux centos8 下载ffmpeg离线安装包、离线安装

脚本 # 添加RPMfusion仓库 sudo yum install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm wget -ymkdir -p /root/ffmpeg cd /root/ffmpegwget http://rpmfind.net/linux/epel/7/x86_64/Packages/s/SDL2-2.0.14-2.el7.x86_64.rpmyum instal…...

CSS3 属性: transition过渡 与 transform动画

CSS3 提供了很多强大的功能&#xff0c;使开发人员可以创建更加吸引人的视觉效果&#xff0c;而不需要依赖于 JavaScript 或 Flash。其中&#xff0c;transition 和 transform 是两个常用的属性&#xff0c;它们分别用于创建平滑的过渡效果和元素的变形效果。下面我们将详细介绍…...

TCP通讯

第二十一章 网络通信 本章节主要讲解的是TCP和UDP两种通信方式它们都有着自己的优点和缺点 这两种通讯方式不通的地方就是TCP是一对一通信 UDP是一对多的通信方式 接下来会一一讲解 TCP通信 TCP通信方式呢 主要的通讯方式是一对一的通讯方式&#xff0c;也有着优点和缺点 …...

(NeRF学习)3D Gaussian Splatting Instant-NGP

学习参考&#xff1a; 3D Gaussian Splatting入门指南【五分钟学会渲染自己的NeRF模型&#xff0c;有手就行&#xff01;】 三维重建instant-ngp环境部署与colmap、ffmpeg的脚本参数使用 一、3D Gaussian Splatting &#xff08;一&#xff09;3D Gaussian Splatting环境配置…...

uni-app 微信小程序之好看的ui登录页面(三)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面&#xff08;一&#xff09; uni-app 微信小程序之好看的ui登录页面&#xff08;二&#xff09; uni-app 微信小程序之好看的ui登录页面&#xff08;三&#xff09; uni-app 微信小程…...

Android 默认打开应用的权限

有项目需要客户要安装第三方软件&#xff0c;但是要手动点击打开权限&#xff0c;就想不动手就打开。 //安装第三方软件&#xff0c;修改方式 frameworks\base\services\core\java\com\android\server\pm\PackageManagerService.java //找到如下源码&#xff1a; //有三种方…...

2023年广东工业大学腾讯杯新生程序设计竞赛

E.不知道叫什么名字 题意&#xff1a;找一段连续的区间&#xff0c;使得区间和为0且区间长度最大&#xff0c;输出区间长度。 思路&#xff1a;考虑前缀和&#xff0c;然后使用map去记录每个前缀和第一次出现的位置&#xff0c;然后对数组进行扫描即可。原理&#xff1a;若 s …...

FFmpeg开发笔记(六)如何访问Github下载FFmpeg源码

学习FFmpeg的时候&#xff0c;经常要到GitHub下载各种开源代码&#xff0c;比如FFmpeg的源码页面位于https://github.com/FFmpeg/FFmpeg。然而国内访问GitHub很不稳定&#xff0c;经常打不开该网站&#xff0c;比如在命令行执行下面的ping命令。 ping github.com 上面的ping结…...

SpringCloud | Dubbo 微服务实战——注册中心详解

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 |Eureka,Nacos,Consul,Zookeeper在Spring Cloud和Dubbo中实战 引言 在项目开发过程中&#xff0c;随着项目不断扩大&#xff0c;也就是业务的不断增多&#xff0c;我们将采用集群&#xf…...

PostGIS学习教程十一:投影数据

PostGIS学习教程十一&#xff1a;投影数据 地球不是平的&#xff0c;也没有简单的方法把它放在一张平面纸地图上&#xff08;或电脑屏幕上&#xff09;&#xff0c;所以人们想出了各种巧妙的解决方案&#xff08;投影&#xff09;。 每种投影方案都有优点和缺点&#xff0c;一…...

jQuery ajax读取本地json文件 三级联动下拉框

步骤 1&#xff1a;创建本地JSON文件 {"departments": [{"name": "会计学院","code": "052"},{"name": "金融学院","code": "053"},{"name": "财税学院",&qu…...

Kubernetes(K8s 1.27.x) 快速上手+实践,无废话纯享版(视频笔记)

视频源&#xff1a;1.03-k8s是什么&#xff1f;_哔哩哔哩_bilibili 1 基础知识 1.1 K8s 有用么&#xff1f; K8s有没有用 K8s要不要学&#xff1f; 参考资料: https://www.infoq.com/articles/devops-and-cloud-trends-2022/?itm_sourcearticles_about_InfoQ-trends-report…...

深度学习实战66-基于计算机视觉的自动驾驶技术,利用YOLOP模型实现车辆区域检测框、可行驶区域和车道线分割图

大家好,我是微学AI,今天给大家介绍一下深度学习实战66-基于计算机视觉的自动驾驶技术,利用YOLOP模型实现车辆区域检测框、可行驶区域和车道线分割图。本文我将介绍自动驾驶技术及其应用场景,并重点阐述了基于计算机视觉技术下的自动驾驶。自动驾驶技术是一种利用人工智能和…...

Stable Diffusion 系列教程 - 1 基础准备(针对新手)

使用SD有两种方式&#xff1a; 本地&#xff1a; 显卡要求&#xff1a;硬件环境推荐NVIDIA的具有8G显存的独立显卡&#xff0c;这个显存勉勉强强能摸到门槛。再往下的4G可能面临各种炸显存、炼丹失败、无法生成图片等各种问题。对于8G显存&#xff0c;1.0模型就不行&#xff0…...

听GPT 讲Rust源代码--src/tools(8)

File: rust/src/tools/rust-analyzer/crates/ide-assists/src/handlers/add_missing_match_arms.rs 在Rust源代码中&#xff0c;rust-analyzer是一个Rust编程语言的语言服务器。它提供了代码补全、代码重构和代码导航等功能来帮助开发者提高编码效率。 在rust-analyzer的代码目…...

Linux硬链接和软连接是什么?

在Linux操作系统中&#xff0c;文件管理是一个基本且重要的概念。其中&#xff0c;软链接&#xff08;Symbolic Link&#xff09;和硬链接&#xff08;Hard Link&#xff09;是文件系统中两种不同类型的链接方式&#xff0c;它们在文件管理和操作中扮演着重要的角色。软链接 软…...

LangChain 23 Agents中的Tools用于增强和扩展智能代理agent的功能

LangChain系列文章 LangChain 实现给动物取名字&#xff0c;LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储&#xff0c;读取YouTube的视频文本搜索I…...

VS2015编译GDAL3.2.0+opencl+C#

参考借鉴https://www.cnblogs.com/litou/p/15004877.html 参考借鉴https://www.cnblogs.com/xiaowangba/p/6313903.html 参考借鉴gdal、proj、geos、sqlite等在VS2015下编译和配置_vs2015编译sqlite3-CSDN博客 参考借鉴Windows下GDAL3.1.2编译 (VS2015)_gdal windows编译-CS…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...