这是大三下学期EDA实训的内容,设计制作了一个简易的U盘。
主要涉及STM32单片机、W25Q128闪存芯片、电路板绘制、文件系统移植等内容,发布出来供大家参考。
仅供学习交流使用,实验步骤仅供参考
转载请注明原文链接:https://blog.csdn.net/ZHJ123CSDN/article/details/107441980
Copyright © 2020 ZhangHoujin

1 实验目的

在日常生活中,U盘作为存储介质非常常见。U盘是一种使用USB接口连接计算机,并通过闪存进行数据存储的小型便携存储设备。本次实验将使用STM32单片机,配合W25Q128闪存芯片,绘制电路板并移植文件系统,制作一个简易的U盘存储介质。制作的电路板实物如下图1.1所示。

2 实验原理

2.1 U盘设计原理

本次实验以STM32F103作为主控芯片,以W25Q128作为Flash闪存芯片。主控芯片与闪存之间通过SPI方式进行数据通信。向芯片中移植FAT文件系统,可以将数据以文件的形式进行存储,实现简易的U盘功能。

2.1.1 SPI通信方式

SPI协议是由摩托罗拉公司提出的通讯协议,即串行外围设备接口,是一种高速全双工的通信总线。它的通讯速率较高,被广泛地使用在ADC、LCD等设备与MCU间通信的场合。SPI协议使用三条总线及片选线实现通信,三条总线分别为SCK、MOSI、MISO,片选线为CS ,它们的作用介绍如下。

  • CS片选线
    SPI协议使用片选信号线来寻址。当主机要选择从设备时,把该从设备的片选信号线设置为低电平,该从设备即被选中。接着主机开始与被选中的从设备进行SPI通讯。
  • SCK时钟信号线
    时钟信号线用于通讯数据同步。它由通讯主机产生,决定了通讯的速率。不同的设备支持的最高时钟频率不同,两个设备之间通讯时,通讯速率受限于低速设备。
  • MOSI主设备输出/从设备输入线
    主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,即这条线上数据的方向为主机到从机。
  • MISO主设备输入/从设备输出线
    主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,即在这条线上数据的方向为从机到主机。

2.1.2 文件系统

使用SPI通信方式可以很方便地在Flash芯片上进行数据读写,但是像这样的直接存储数据会带来很大不便。如难以记录有效数据的位置,难以确定存储介质的剩余空间,以及难以确定以何种格式来解读数据等等。
更为高效的存储方式被称为文件系统,它是为了存储和管理数据,而在存储介质中建立的一种组织结构,这些结构包括操作系统引导区、目录和文件。常见的Windows系统下的文件系统格式包括FAT32、NTFS、exFAT。在使用文件系统前,要先对存储介质进行格式化。格式化要先擦除原来内容,在存储介质上新建一个文件分配表和目录,文件系统由此可以记录数据存放的物理地址,剩余空间等信息。
由于文件系统的存在,使我们在存取数据时不再是简单地向某物理地址直接读写,而是要遵循它的读写格式。本次实验通过在芯片中移植FAT文件系统,可以实现对文件的高效存储。

2.2 硬件框架

2.2.1 闪存芯片

本次实验的Flash闪存芯片选用W25Q128JVSIQTR芯片,其容量为16MB。芯片内部分为256个块,每个块大小为64K字节;每个块又分为16个扇区,每个扇区4K字节。W25Q128 的最少擦除单位为一个扇区,也就是每次必须擦除 4K 个字节。其硬件连接如下图2.1所示。

如上图所示,W25Q128封装的CS引脚是芯片的片选信号线,片选线低电平有效,所以外接了一个上拉电阻将电平拉高;DO引脚是芯片的MIOS主机输入线,主控芯片从这条线上读取数据;WP是写保护引脚,外接电源表示关闭写保护,开启数据写入使能;HOLD引脚是芯片的数据暂停引脚,低电平时会暂停数据传输,因此外接了一个高电平电源;CLK引脚是芯片的时钟信号线,用来与主控芯片保持通信频率;DI引脚是芯片的MOSI从设备输入线,主设备在该线将数据输出,从设备在该线接收数据。

2.2.2 稳压芯片

电脑的USB接口一般输出电压是5V,而芯片工作电压在3.3V左右,因此需要使用稳压芯片将5V的输入电压转换为3.3V的输出电压。本次实验中使用的稳压芯片是XC6206P332MR,如下图所示。

2.3 PCB生产工序

PCB生产的具体工作流程为:开料→钻孔→沉铜→图形转移→图形电镀→退膜→蚀刻→绿油阻焊层→添加丝印层→镀金手指→镀锡层→成型→测试→终检→包装寄送。

  1. 开料是指根据工程资料的要求,在符合要求的大张板材上裁切成符合客户要求的小块生产板料。流程为:大板料→按要求切板→锔板→啤圆角和磨边→开料完成。
  2. 钻孔是指根据客户要求,在符合要求尺寸的板料上钻出所需的孔径。流程为:叠板销钉→上板→钻孔→下板→检查和修理。
  3. 沉铜是利用化学方法在绝缘孔壁上沉积上一层薄铜。流程为:粗磨→挂板→铜层沉积→下板→浸1%稀H2SO4→加厚铜。
  4. 图形转移是将菲林上的图像转移到料板上。图形转移分为蓝油和干膜,蓝油流程为:磨板→印第一面→烘干→印第二面→烘干→爆光→冲影→检查;干膜流程为:磨板→压膜→静置→对位→曝光→静置→冲影→检查。
  5. 图形电镀是在线路图形裸露的铜皮或孔壁上电镀,以达到要求厚度的铜层与要求厚度的金镍或锡层。工艺流程为:上板→除油→微蚀→水洗→酸洗→镀铜→水洗→浸酸→镀锡→水洗→下板。
  6. 退膜是指用NaOH溶液退去抗电镀覆盖膜层,使非线路铜层裸露出来。水膜流程为:插架→浸碱→冲洗→擦洗→过机;干膜流程为:放板→过机。
  7. 蚀刻是利用化学反应法将非线路部位的铜层腐蚀去除。绿油是将绿油菲林的图形转移到板上,起到保护线路和阻止焊接零件时线路上锡的作用。流程为:磨板→印感光绿油→锔板→曝光→冲影;磨板→印第一面→烘板→印第二面→烘板。
  8. 字符是提供的一种便于辨认的标记。工艺流程为:绿油终锔→冷却静置→调网→印字符→后锔。
  9. 镀金手指是在金手指上镀上一层要求厚度的镍金层,使之更具有硬度和耐磨性。流程为:上板→除油→水洗两次→微蚀→水洗两次→酸洗→镀铜→水洗→镀镍→水洗→镀金。
  10. 喷锡是在未覆盖阻焊油的裸露铜面上喷上一层铅锡,以保护铜面不蚀氧化,以保证具有良好的焊接性能。流程为:微蚀→风干→预热→松香涂覆→焊锡涂覆→热风平整→风冷→洗涤风干。
  11. 成型是指通过模具冲压或数控锣机锣出客户所需要的形状。数据锣机板与啤板的精确度较高,手锣其次,手切板最低具只能做一些简单的外形。
  12. 通过电子检查可以检测到目视不易发现到的开路,短路等影响功能性的缺陷。流程为:上模→放板→测试→合格→FQC目检→不合格→修理→返测试→OK→REJ→报废。通过目检板件外观缺陷,对轻微缺陷进行修理,避免有问题及缺陷板件流出。工作流程为:来料→查看资料→目检→合格→FQA抽查→合格→包装→不合格→处理→检查OK。

2.4 PCB板层含义及功能

  • (1)信号层(Signal Layers)
    信号层被用于放置连接数字或模拟信号的铜膜走线。Altium Designer电路板可以有32个信号层,其中Top是顶层,Mid1~30是中间层,Bottom是底层。习惯上Top层又称为元件层,Bottom层又称为焊接层。
  • (2)阻焊层(Soldermask Layer)
    阻焊层是在铜层上面的一层,这一层让PCB看起来是绿色的。阻焊层覆盖了铜层上面的走线,防止PCB上的走线和其他的金属、焊锡或者其它的导电物体接触导致短路。阻焊层的存在防止了焊锡搭桥。我们可以看到阻焊覆盖了PCB的大部分,但露出了银色的孔环以及焊盘,这样可以方便焊接。
  • (3)锡膏防护层(Pastemask layer)
    锡膏防护层和阻焊层的作用相似,不同的是在机器焊接时所对应的贴片式元件的焊盘。如果板全部放置的是通孔元件,这一层就不用输出Gerber文件了。在将贴片元件贴到PCB板上以前,必须在每一个贴片焊盘上先涂上锡膏。
  • (4)丝印层(Silkscreen Layer)
    白色的字符是丝印层。在PCB的丝印层上印有字母、数字以及符号,这样可以方便组装以及指导大家更好地理解板卡的设计。设计时经常会用丝印层的符号标识某些管脚或者LED的功能等。
  • (5)机械层和禁止布线层(Mechanical Layer / Keep-Out Layer)
    机械层是定义整个PCB板的外观的,平时所说的机械层就是指整个PCB板的外形结构。禁止布线层定义了具有电气特性的铜线边界,也就是说只要先定义了禁止布线层后,所布的具有电气特性的线不可以超出禁止布线层的边界。
  • (6)钻孔层(Drill layer)
    钻孔层提供电路板制造过程中的钻孔信息,如焊盘过孔就需要钻孔。一般文件会提供了钻孔指示图(Drillgride)和钻孔图(Drill drawing)这两个钻孔层。

3 实验过程

3.1 绘制原理图

3.1.1 下载封装库

由于需要向工厂投板,所以直接使用工厂的封装库会方便些。直接去嘉立创的码云仓库里查找封装文件即可。

选择第一个 嘉立创SMT/JLCSMT_LIB 可贴片元器件基础库,下载ZIP压缩包。

将下载的ZIP文件解压,即可获得嘉立创的SMT贴片封装库。

3.1.2 新建工程

在Altium Designer软件中,新建一个PCB工程。工程模板选择默认,工程名称设置为 USB_SPI_Flash

为工程添加一个原理图文件。

将该原理图命名为 USB_SPI_Flash.SchDoc 并保存。

3.1.3 加载封装库

在软件设置界面打开“已安装的元件库”界面,选择从文件安装封装库。
将之前下载的嘉立创封装导入到软件中。选中电容、晶振、MCU、LDO和电阻的封装,点击打开即可。或者直接选择 Miscellaneous Devices LC.IntLib 文件。以 IntLib 作为扩展名的文件是AD中的集成封装库,其中包含了原理图库和PCB封装库,所以只引入这一个库文件也可以。

导入完成后的元件库如下图3.8所示。

3.1.4 模块绘制

接下来分别绘制各个模块的原理图。我直接使用了老师给的原理图,将该原理图导入到工程中,如下图所示。

接下来尝试使用金手指的USB接口,需要将原有的USB插头封装替换成自己绘制的金手指封装。首先添加一个PCB封装库,用于绘制金手指的原理图和PCB封装,如下图3.10所示。

首先绘制原理图,原理图封装直接使用了老师提供的图。

四脚排针的原理图也使用了老师给的原理图。

接下来绘制PCB封装,首先添加一个PCB库文件。

将四脚排针的封装添加进去,如下图3.14所示。

本次我想尝试使用金手指的封装,所以需要自己绘制一下USB接口的封装。原理图就直接使用老师给的原理图,但封装需要自己绘制,如下图3.15所示。

PCB需要较严格的尺寸要求,我是用卡尺测量的实际USB接口尺寸,根据实际的金手指画出来的。另外需要注意PCB和原理图的引脚需要一一对应。搜集USB接口的引脚图,可以找到USB每个脚位所对应的实际接口。如下图3.16所示。

根据上图2.16所示的引脚脚位,可以设置PCB封装中的脚位与原理图对应。
PCB绘制完成后,需要将原理图和PCB联系起来。在原理图页面点击 Add FootPrint 添加封装。

添加完成过后,两个原件的封装就绘制完成了。将原理图中的这两个原件替换成自己绘制的原件就可以了。

3.1.5 原件编号

使用软件工具将所有原件全部重新编号。在菜单栏的工具->注释选项中,找到注释原理图选项。

在该界面,首先将所有已注释的内容清空。

选择注释顺序为 Across Then Down ,依次更新和执行更改。验证更改并执行,将原件全部重新编号。

3.1.6 编译工程

原理图绘制完成后,对原理图进行编译。

编译结果如下。

编译警告说 P7-2 引脚没有驱动源,双击看一下具体位置。

是因为芯片设计时,此引脚需要有输入的驱动信号,而现在绘制的原理图直接接地了,没有驱动信号所以会产生警告。该警告可以忽略。

3.2 绘制PCB

3.2.1 绘制板子形状

原理图绘制完成后就可以绘制PCB了。新建一个PCB文件,将其命名为 USB_SPI_Flash.PcbDoc


按照实验要求,重新定义PCB的板子形状。可以在菜单栏的编辑选项中,找到设置原点选项,将原点重新设置一下。

切换到机械层,绘制矩形的边框。首先绘制一条直线,然后双击设置它的长度。

绘制一个48mm × 25mm的矩形边框,如下图3.28所示。

将该矩形框选中,重新定义板子形状。

完成之后的板子形状如下图3.30所示。

3.2.2 导入原件

在原理图界面点击设计->更新PCB文件,将原件导入到PCB中。

点击验证更改可以对原件的封装进行验证。

如果此时出现了上图的报错信息,说明原件的PCB封装没有找到。这些封装是嘉立创提供的封装,所以只需要将对应的封装文件导入进来就可以了。
导入完成后,依次点击验证更改和执行更改,原件就导入到PCB文件中了。

导入到PCB文件中的效果如下图所示。

3.2.3 原件排布

接下来将原件依次排布在PCB板子上。

可以根据要求重新绘制一下板子形状,如下图3.36所示。

3.2.4 原件布线

在原件位置固定后,可以开始进行布线。首先设置布线规则。


布线之前可以使用对齐工具,将相同行列的原件对齐。

之后可以自己布线了,顶层布线初步完成后的样式如下:

有些线在顶层铺不开了,需要打过孔到底层去布线。首先要设置一下过孔的大小。孔径设置为 0.5mm ,外层直径设为 0.7mm

设置过孔孔径完成后,可以进行打孔等操作。在PCB背面布线,初步布线效果如下图3.42所示。

布线完成后,需要整体看一下布线效果,对部分线束进行修改。修改完成过后的大体布线效果如下图3.43所示。

3.2.5 补泪滴

为了防止在机械制板的时候,焊盘或过孔因承受钻孔的压力而与铜膜导线在连接处断裂,因此连接处需要加宽铜膜导线来避免此种情况发生。补泪滴后的连接处会变得比较光滑,不易因残留化学药剂而导致对铜膜导线的腐蚀。
在菜单栏的工具->泪滴选项中,可以设置泪滴的添加方式。

补完泪滴的PCB效果如下图3.45所示。

3.2.6 铺铜

连线完成后,进行铺铜。首先铺底层的GND层,并勾选移除死铜选项。

底层覆铜效果如下图3.47所示。

正面覆铜效果如下图3.48所示。

3.2.7 DRC检查

覆铜完成后,需要进行DRC检查。

第一次DRC检查的结果如下图3.50所示。

具体是有两方面的问题:

第一个是焊盘之间的间距,有些地方超过了0.254mm。另一个是丝印到焊盘之间的间距,有些地方也小于了0.254mm。
接下来修改DRC检查的规则,如下图3.52所示。

第二次DRC检查:
将检查的约束条件去除一些,再次运行DRC检查。

此时检查的结果就不存在错误了。

3.2.8 添加丝印并检查

首先添加一个学校的校徽,首先运行AD脚本,执行 RunConverterScript 将BMP图片转换为丝印层图片。

在底层丝印层添加这个图片,转换过程如下图3.55所示。

将转换完成的丝印复制粘贴到底层丝印层即可。

但是考虑到本次的PCB板比较小,如果印上校徽可能根本看不清字,所以我就将底层的校徽丝印去掉了。经过调整,最终的背面丝印如下图3.57所示。

丝印做完之后,需要再进行依次DRC检查,防止丝印与焊盘靠得太近。
第三次DRC检查结果如下:

可以看到,DRC检查已通过。

3.2.9最终效果

PCB最终效果如下图3.59所示。

三维模拟视图如下图所示。

3.3 PCB打板

3.3.1 导出文件

本次PCB实训使用嘉立创打板,首先将PCB源文件复制一份并压缩至RAR格式。

在嘉立创助手上传压缩文件。

上传完成后,可以查看文件解析结果。

3.3.2 填写订单

在下单页面填写相关选项,点击提交订单即可。

因为这块板子是我的第二次设计,前几天已经投过一次板了,我觉得当时做的板子布局不太好,所以就重做了一次。第一次投稿时选用了SMT贴片,这次投稿就不再用SMT了。两次投板的订单列表如下图3.66所示。

3.3.3 原件贴片

第一次投板时选用了工厂的SMT贴片,其操作步骤如下。
首先需要在嘉立创的SMT订单页面上传自己的PCB源文件,由嘉立创自动生成对应的BOM表和坐标文件。

上传完成后,点击下一步,可以看到原件的BOM表,如下图3.68所示。检查原件的BOM表与自己PCB所用的原件是否相同,检查完毕后可以点击确认。

确认元件清单无误后,可以看到PCB的模拟贴片图。如下图3.69所示。

上面是我第一次画的PCB贴片图,当时因为时间比较紧张,所以画得比较糟糕,原件也不整齐,过孔也比较多。元件贴片图检查完成之后,就可以对整个SMT订单进行确认了。

确认订单前可以查看具体的项目费用情况。

整个订单包括PCB打板订单和SMT贴片订单,确认完订单并提交付款后,就只需等待发货了。

4 实验结果

本次实验根据原理图绘制了相应的PCB电路,并将PCB文件投稿至工厂,进行了工厂打板和SMT贴片。本次共投出了两版电路板,第一版使用了SMT贴片,第二版没有贴片。收到板子后,可以尝试烧录程序实现U盘功能。

4.1 准备工作

在收到PCB样板后,首先需要对PCB样板的线路进行检查,可以用万用表测量线路是否导通,是否存在短路等问题。检测完成后,由于后续需要往里面烧程序,所以要把缺少的排针先焊上。焊接完成后如下图4.1所示。

本次使用的是金手指的封装,但由于经费问题没有在金手指处做沉金处理,所以现在金手指位置是一层白色的锡。当我尝试将PCB插入USB接口时,发现PCB金手指位置的尺寸被设计得太大了,USB接口插不进去,所以又打磨了一下PCB。
打磨完成后,将PCB插入USB扩展坞进行测试。测试结果如下图4.2所示。红色的LED因为连接到了稳压管的输出端,所以一插上就亮了。

此时在电脑的设备管理器中可以看到该设备为 Unknown USB Device 未知的USB设备,如下图4.3所示。

接入电源时,可以测试一下PCB的供电是否正常。我主要测试了一下稳压管的输入和输出电压,输入的5V是USB接口的电压,输出测量的是3.28V,也基本上正常。如下图所示。

另外其他的线路也要进行初步测量,以确保板子能够正常工作。

4.2 程序烧录

原理图在设计时使用了PA13和PA14作为预留的程序下载引脚,网络标号标注为SWDIO和SWLCK,说明原理图被设计为用SWD方式下载程序。使用SWD方式下载程序可以节省端口占用,它只需要SWDIO、SWCLK、VCC和GND四条引脚就可以了,也就是对应PCB板上预留的四脚排针。
将PCB板上的四脚排针连接到JLink、STLink等仿真器上,再将仿真器连接电脑。老师给我们的工程代码需要在IAR软件中打开,如下图4.6所示。在IAR软件中修改仿真器的配置,编译程序没有错误的话就可以下载了。下载完成后应该就可以将PCB作为U盘使用了。因为我手边没有下载器,所以暂时就不去下载代码了。

工程代码的基本原理是在SMT32与W25Q128闪存芯片之间进行SPI通信,利用SPI通信可以在主设备芯片和闪存之间传递数据。再向芯片中移植一个文件系统,就可以实现像U盘一样的读取文件。

5 实验总结

本次EDA实训设计制作了一款基于STM32的简易U盘。绘制了原理图、封装库,绘制了两版PCB电路板并将工程文件投厂生产,最终得到了完整的PCB实验板实物。利用嘉立创的SMT贴片服务,将原件焊接到了电路板上,方便样板测试。同时导出了BOM表,可以自己进行元件的购置。
本次设计是从原理到实践的结合,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,实践是检验真理的唯一标准。我们电子专业的学习更是如此,不仅要有丰富的理论知识,还要有很强的动手能力,这是工科学生的特点。只有理论与实践并重,我们的专业水平才能提高,这就是我在这次课程设计中的最大收获。

6 附录

电路板工程文件及实验代码

STM32 USB_SPI_FLASH 简易U盘设计相关推荐

  1. 基于stm32简易计算机电路图,基于STM32的简易电子计算器设计与实现(DOC).doc

    嵌入式系统设计实验综合设计报告 PAGE 四川师范大学成都学院通信工程学院 基于STM32的简易电子计算器设计与实现 实验综合设计报告 学生姓名 陶龑 学 号 2016301033 所在学院 通信工程 ...

  2. 【毕业设计】基于stm32的便携式U盘设计与实现 - stm32制作U盘

    文章目录 0 前言 1 简介 2 主要器件 3 实现过程 4 部分核心代码 5 最后 0 前言

  3. 基于STM32的简易电子秒表仿真设计(仿真+程序+设计报告+讲解)

    基于STM32的简易电子秒表仿真设计(仿真+程序+设计报告+讲解) 视频演示 1.主要功能 2.仿真 3. 程序 4. 设计报告 5.资料清单&下载链接 仿真图proteus 8.9 程序编译 ...

  4. 基于STM32的多功能MP3设计 毕业设计(论文)开题报告

    中国计量学院 毕业设计(论文)开题报告 学生姓名:卢杰学 号:XXXXXXXXX 专    业:电子科学与技术 班    级:10电子1 设计(论文)题目: 基于STM32的多功能MP3设计 指导教师 ...

  5. 51单片机设计简易计算机原理,基于AT89C51单片机简易计算器的设计(DOC).docx

    PAGE PAGE # 基于AT89C51单片机简易计算器的设计 [摘要]单片机的出现是计算机制造技术高速发展的产物,它是嵌 入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域, 电子.科技 ...

  6. 基于STM32的简易示波器的UCOS II嵌入式实时操作系统实现

    基于STM32的简易示波器的UCOS II嵌入式实时操作系统实现 在基于STM32的示波器的实现的基础上,在STM32上移植UCOS II嵌入式实时操作系统. 在UCOS II操作系统中将各个功能分发 ...

  7. 基于8086简易电子琴系统仿真设计、基于8086红外自动门控制胸设计-全套设计资料【转发】

    1189基于8086简易电子琴系统仿真设计-设计资料 编写一实现电子琴的程序,并实现若干扩展功能. 基本功能:用键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶: 扩展功 ...

  8. 基于HDFS实现的简易云盘系统

    文章目录 前言 一.实验简介 二.分析与设计 1. 功能需求分析: 2. 系统设计 三.效果展示 四.环境配置 五.功能实现 1. 基础部分 2. 用户管理 3. 文件管理 六.项目资源 七.其他 八 ...

  9. 基于8086简易电子琴系统仿真设计-基于8086红外自动门控制系统设计-基于单片机8x8矩阵键盘两机串口通信-基于单片机8层电梯控制系统仿真设计-基于单片机ADC0809和DAC0832模数和数模设计

    1189基于8086简易电子琴系统仿真设计-设计资料 编写一实现电子琴的程序,并实现若干扩展功能. 基本功能:用键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶: 扩展功 ...

  10. 简易灯箱画廊设计html,原生Js实现的画廊功能

    原生Js实现画廊功能,点击图片,在下方出现相应放大图片.给a标签绑定onclick点击事件.这里上方的小图和下方将要展示大图,都是同一张图片,只是上下两个img的style中设置了不同的width和h ...

最新文章

  1. 做时间序列预测有必要用深度学习吗?梯度提升回归树媲美甚至超越多个DNN模型...
  2. BZOJ 3329: Xorequ(数位dp+递推)
  3. 项目管理学习总结(12)——世界上最好的十条研发管理经验
  4. 微软发布 .Net Core 3.0 版重大更新,对开发者来说意味着什么?
  5. SQL Server 2008 报表服务入门
  6. keras-yolov3 + Kalman-Filter 进行人体多目标追踪(含代码)
  7. python将多个pdf合并并保存书签
  8. 上传图片时出现http 415错误
  9. python刷题记录:买帽子
  10. 中奖记录html页面,微信小程序 中奖纪录列表滚动
  11. linux安装OceanBase数据库
  12. Python初学问题-input输入、while循环、函数
  13. 1、计算机毕业设计论文分析-班主任管理系统
  14. subprocess
  15. 《C语言内涵教程》前言
  16. 【Linux】Ubuntu 18.04桌面美化
  17. 我的世界整合包内自带服务器,我的世界服务器整合包怎么用
  18. java opencv surf_opencv python SURF
  19. 为什么那么多人说,过了30岁还做技术没有前途 ??
  20. 奥密克戎 (Omicron) 知多少m?| MedCheExpress

热门文章

  1. 【Proteus仿真】HC-SRF04超声波测距传感器数码管显示
  2. 虚拟机主机服务器出现SSH已启用,ESXi去掉 SSH已经启用的警告信息
  3. ajax上传图片到又拍云,又拍云存储(UpYun)的.NET Core填坑
  4. 腾讯云容器安全已支持检测Apache Log4j2漏洞
  5. git rebase命令实际操作记录
  6. 一阶电路误差分析_自动控制原理 | 时域分析法
  7. 计算机主机内有的硬件有哪些,电脑主机内有哪些硬件
  8. BiLSTM文本分类实践
  9. UTC相关的时区转换
  10. 系统时间与格林威治时间