ESP32开发板-Micropython程序-亮灯

Micropython 操作ESP32 GPIO 点亮 LED

1 编写代码

前提条件,已知ESP32 GPIO引脚图 , 我这里是GPIO22 连接一个LED

from machine import Pin # 导入Pin模块
from utime import sleep_ms #导入延时函数LED = Pin(22,Pin.OUT) # 构建 LED 对象,GPIO22 输出LED.value(0)  # 点亮LED
sleep_ms(500)
LED.value(1)  # 熄灭LED
sleep_ms(1000)

2 上传代码前提
开发版串口正确连接 PC USB,查看开发板内脚本情况

Port /dev/ttyUSB0, 19:21:21
Press CTRL-A Z for help on special keys
>>> import os
>>> os.listdir()
['boot.py', 'ssd1306.py', 'main.py']
>>> 

说明: 开发板子中 Micropython 上电自动启动流程,如下图所示:

#mermaid-svg-yw2bOsDQCHApJafF .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-yw2bOsDQCHApJafF .label text{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF .node rect,#mermaid-svg-yw2bOsDQCHApJafF .node circle,#mermaid-svg-yw2bOsDQCHApJafF .node ellipse,#mermaid-svg-yw2bOsDQCHApJafF .node polygon,#mermaid-svg-yw2bOsDQCHApJafF .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-yw2bOsDQCHApJafF .node .label{text-align:center;fill:#333}#mermaid-svg-yw2bOsDQCHApJafF .node.clickable{cursor:pointer}#mermaid-svg-yw2bOsDQCHApJafF .arrowheadPath{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-yw2bOsDQCHApJafF .flowchart-link{stroke:#333;fill:none}#mermaid-svg-yw2bOsDQCHApJafF .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-yw2bOsDQCHApJafF .edgeLabel rect{opacity:0.9}#mermaid-svg-yw2bOsDQCHApJafF .edgeLabel span{color:#333}#mermaid-svg-yw2bOsDQCHApJafF .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-yw2bOsDQCHApJafF .cluster text{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-yw2bOsDQCHApJafF .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-yw2bOsDQCHApJafF text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-yw2bOsDQCHApJafF .actor-line{stroke:grey}#mermaid-svg-yw2bOsDQCHApJafF .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-yw2bOsDQCHApJafF .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-yw2bOsDQCHApJafF #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-yw2bOsDQCHApJafF .sequenceNumber{fill:#fff}#mermaid-svg-yw2bOsDQCHApJafF #sequencenumber{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF #crosshead path{fill:#333;stroke:#333}#mermaid-svg-yw2bOsDQCHApJafF .messageText{fill:#333;stroke:#333}#mermaid-svg-yw2bOsDQCHApJafF .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-yw2bOsDQCHApJafF .labelText,#mermaid-svg-yw2bOsDQCHApJafF .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-yw2bOsDQCHApJafF .loopText,#mermaid-svg-yw2bOsDQCHApJafF .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-yw2bOsDQCHApJafF .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-yw2bOsDQCHApJafF .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-yw2bOsDQCHApJafF .noteText,#mermaid-svg-yw2bOsDQCHApJafF .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-yw2bOsDQCHApJafF .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-yw2bOsDQCHApJafF .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-yw2bOsDQCHApJafF .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-yw2bOsDQCHApJafF .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF .section{stroke:none;opacity:0.2}#mermaid-svg-yw2bOsDQCHApJafF .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-yw2bOsDQCHApJafF .section2{fill:#fff400}#mermaid-svg-yw2bOsDQCHApJafF .section1,#mermaid-svg-yw2bOsDQCHApJafF .section3{fill:#fff;opacity:0.2}#mermaid-svg-yw2bOsDQCHApJafF .sectionTitle0{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF .sectionTitle1{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF .sectionTitle2{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF .sectionTitle3{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-yw2bOsDQCHApJafF .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF .grid path{stroke-width:0}#mermaid-svg-yw2bOsDQCHApJafF .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-yw2bOsDQCHApJafF .task{stroke-width:2}#mermaid-svg-yw2bOsDQCHApJafF .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF .taskText:not([font-size]){font-size:11px}#mermaid-svg-yw2bOsDQCHApJafF .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-yw2bOsDQCHApJafF .task.clickable{cursor:pointer}#mermaid-svg-yw2bOsDQCHApJafF .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-yw2bOsDQCHApJafF .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-yw2bOsDQCHApJafF .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-yw2bOsDQCHApJafF .taskText0,#mermaid-svg-yw2bOsDQCHApJafF .taskText1,#mermaid-svg-yw2bOsDQCHApJafF .taskText2,#mermaid-svg-yw2bOsDQCHApJafF .taskText3{fill:#fff}#mermaid-svg-yw2bOsDQCHApJafF .task0,#mermaid-svg-yw2bOsDQCHApJafF .task1,#mermaid-svg-yw2bOsDQCHApJafF .task2,#mermaid-svg-yw2bOsDQCHApJafF .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-yw2bOsDQCHApJafF .taskTextOutside0,#mermaid-svg-yw2bOsDQCHApJafF .taskTextOutside2{fill:#000}#mermaid-svg-yw2bOsDQCHApJafF .taskTextOutside1,#mermaid-svg-yw2bOsDQCHApJafF .taskTextOutside3{fill:#000}#mermaid-svg-yw2bOsDQCHApJafF .active0,#mermaid-svg-yw2bOsDQCHApJafF .active1,#mermaid-svg-yw2bOsDQCHApJafF .active2,#mermaid-svg-yw2bOsDQCHApJafF .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-yw2bOsDQCHApJafF .activeText0,#mermaid-svg-yw2bOsDQCHApJafF .activeText1,#mermaid-svg-yw2bOsDQCHApJafF .activeText2,#mermaid-svg-yw2bOsDQCHApJafF .activeText3{fill:#000 !important}#mermaid-svg-yw2bOsDQCHApJafF .done0,#mermaid-svg-yw2bOsDQCHApJafF .done1,#mermaid-svg-yw2bOsDQCHApJafF .done2,#mermaid-svg-yw2bOsDQCHApJafF .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-yw2bOsDQCHApJafF .doneText0,#mermaid-svg-yw2bOsDQCHApJafF .doneText1,#mermaid-svg-yw2bOsDQCHApJafF .doneText2,#mermaid-svg-yw2bOsDQCHApJafF .doneText3{fill:#000 !important}#mermaid-svg-yw2bOsDQCHApJafF .crit0,#mermaid-svg-yw2bOsDQCHApJafF .crit1,#mermaid-svg-yw2bOsDQCHApJafF .crit2,#mermaid-svg-yw2bOsDQCHApJafF .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-yw2bOsDQCHApJafF .activeCrit0,#mermaid-svg-yw2bOsDQCHApJafF .activeCrit1,#mermaid-svg-yw2bOsDQCHApJafF .activeCrit2,#mermaid-svg-yw2bOsDQCHApJafF .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-yw2bOsDQCHApJafF .doneCrit0,#mermaid-svg-yw2bOsDQCHApJafF .doneCrit1,#mermaid-svg-yw2bOsDQCHApJafF .doneCrit2,#mermaid-svg-yw2bOsDQCHApJafF .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-yw2bOsDQCHApJafF .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-yw2bOsDQCHApJafF .milestoneText{font-style:italic}#mermaid-svg-yw2bOsDQCHApJafF .doneCritText0,#mermaid-svg-yw2bOsDQCHApJafF .doneCritText1,#mermaid-svg-yw2bOsDQCHApJafF .doneCritText2,#mermaid-svg-yw2bOsDQCHApJafF .doneCritText3{fill:#000 !important}#mermaid-svg-yw2bOsDQCHApJafF .activeCritText0,#mermaid-svg-yw2bOsDQCHApJafF .activeCritText1,#mermaid-svg-yw2bOsDQCHApJafF .activeCritText2,#mermaid-svg-yw2bOsDQCHApJafF .activeCritText3{fill:#000 !important}#mermaid-svg-yw2bOsDQCHApJafF .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-yw2bOsDQCHApJafF g.classGroup text .title{font-weight:bolder}#mermaid-svg-yw2bOsDQCHApJafF g.clickable{cursor:pointer}#mermaid-svg-yw2bOsDQCHApJafF g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-yw2bOsDQCHApJafF g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-yw2bOsDQCHApJafF .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-yw2bOsDQCHApJafF .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-yw2bOsDQCHApJafF .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-yw2bOsDQCHApJafF .dashed-line{stroke-dasharray:3}#mermaid-svg-yw2bOsDQCHApJafF #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-yw2bOsDQCHApJafF #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-yw2bOsDQCHApJafF #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-yw2bOsDQCHApJafF #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-yw2bOsDQCHApJafF #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-yw2bOsDQCHApJafF #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-yw2bOsDQCHApJafF #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-yw2bOsDQCHApJafF #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-yw2bOsDQCHApJafF .commit-id,#mermaid-svg-yw2bOsDQCHApJafF .commit-msg,#mermaid-svg-yw2bOsDQCHApJafF .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-yw2bOsDQCHApJafF g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-yw2bOsDQCHApJafF g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-yw2bOsDQCHApJafF g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-yw2bOsDQCHApJafF .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-yw2bOsDQCHApJafF .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-yw2bOsDQCHApJafF .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-yw2bOsDQCHApJafF .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-yw2bOsDQCHApJafF .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-yw2bOsDQCHApJafF .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-yw2bOsDQCHApJafF .edgeLabel text{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-yw2bOsDQCHApJafF .node circle.state-start{fill:black;stroke:black}#mermaid-svg-yw2bOsDQCHApJafF .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-yw2bOsDQCHApJafF #statediagram-barbEnd{fill:#9370db}#mermaid-svg-yw2bOsDQCHApJafF .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-yw2bOsDQCHApJafF .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-yw2bOsDQCHApJafF .statediagram-state .divider{stroke:#9370db}#mermaid-svg-yw2bOsDQCHApJafF .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-yw2bOsDQCHApJafF .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-yw2bOsDQCHApJafF .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-yw2bOsDQCHApJafF .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-yw2bOsDQCHApJafF .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-yw2bOsDQCHApJafF .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-yw2bOsDQCHApJafF .note-edge{stroke-dasharray:5}#mermaid-svg-yw2bOsDQCHApJafF .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-yw2bOsDQCHApJafF .error-icon{fill:#522}#mermaid-svg-yw2bOsDQCHApJafF .error-text{fill:#522;stroke:#522}#mermaid-svg-yw2bOsDQCHApJafF .edge-thickness-normal{stroke-width:2px}#mermaid-svg-yw2bOsDQCHApJafF .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-yw2bOsDQCHApJafF .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-yw2bOsDQCHApJafF .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-yw2bOsDQCHApJafF .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-yw2bOsDQCHApJafF .marker{fill:#333}#mermaid-svg-yw2bOsDQCHApJafF .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-yw2bOsDQCHApJafF {color: rgba(0, 0, 0, 0.75);font: ;}

上电
boot.py
main.py

由上述流程可知道要想代码上电自启动,必须代码文件名为boot.py 或者main.py,但是不建议修改boot.py 其内部可能包好比较关键的代码,比如你之前设置的开机自动连接网络的代码,所以这里我们把点灯代码文件名修改为 main.py, 执行如下烧录命令,把代码拷贝到开发板中

ampy --port /dev/ttyUSB0 put main.py

[ESP32/ESP8266专题笔记-2]ubuntu下 编写第一个 ESP32开发板-Micropython程序相关推荐

  1. [ESP32/ESP8266专题笔记-7]ubuntu下搭建ESP32/ESP8266-使用WLED

    WLED介绍 官网: https://kno.wled.ge/ 项目地址:github中的项目地址 编译好的固件: releases版本,编译好的固件 参照: https://blog.csdn.ne ...

  2. [ESP32/ESP8266专题笔记-6] ESP8266开发板-Micropython-WS2812灯的控制

    WS2812全彩LED简介 所谓基于WS2812B的LED灯珠,就是将一个控制芯片封装进全彩LED灯珠中,配合单独的通信协议可以实现对单个灯的全彩控制 WS2812 全彩LED灯珠封装实物图 WS28 ...

  3. Ubuntu 下编写C程序

    Ubuntu 下编写C程序 一.编写C程序 二.编译C程序 三.make工具和Makefile文件 一.编写C程序 使用VIM编辑器编写程序,也可以使用vscode. 1.1.设置vim编辑器 设置v ...

  4. linux 搭建开发stm32 stlink,Ubuntu下搭建stm32+stlink的开发环境

    Ubuntu下搭建stm32+stlink的开发环境 热度 3已有 15960 次阅读2014-8-19 21:09 | 上周因为忙于别的事情,很久没切到ubuntu下了,这周继续弄了弄. 弄到了一些 ...

  5. 在Ubuntu下构建Bullet以及运行Bullet的例子程序

    在Ubuntu下构建Bullet以及运行Bullet的例子程序 1.找到Bullet的下载页,地址是:https://code.google.com/p/bullet/downloads/list 2 ...

  6. 在Ubuntu下使用QEMU搭建arm开发环境(三)使用u-boot加载Linux内核

    嵌入式启动概述 嵌入式boot loader 功能类似于PC的BIOS.硬件检测是否正常 加载操作系统镜像到RAM 设置不同的启动方式 常见的启动方式 NOR/NAND flash启动 从SD卡启动 ...

  7. Linux下使用vscode在线调试STM32开发板

    Linux下使用vscode在线调试STM32开发板 前言 一.安装vscode Cortex-Debug扩展 二.下载和安装STLink开发工具,这是Cortex-Debug需要的配套工具 三.配置 ...

  8. 使用gftp将ubuntu生成的可执行文件copy到开发板

    目录 一.使用gftp将ubuntu生成的可执行文件copy到开发板 1.1安装gftp 1.2gftp的使用 1.3输入主机名.开发板IP.端口号等,点击左上角连接开发板 1.4输入密码连接 1.5 ...

  9. [gitHub使用笔记一]ubuntu下快速访问github官网的方法

    ubuntu下快速访问github官网的方法一 修改hosts文件 1 先打开dns查询网站:dns查询网站 2 输入城名 github.com , 点击<检测> 3 找到 TTL值最小, ...

最新文章

  1. 选择一线一张床还是小城一套房?
  2. 一个网卡下设置两个ip地址
  3. linux脚本 set env,linux 中 set,env,export,declare显示shell变量的区别
  4. 让java的多重继承成为现实!
  5. 为什么jdk中把String类设计成final
  6. Qt之QMessageBox详解
  7. C语言项目源代码大全2021最新!
  8. 人人开源vue无法启动
  9. 山东大学计算机组成课设,山东大学计算机组成原理课程设计实验报告.pdf
  10. Oracle官网登录用户名密码
  11. zmud之汉字转换为数字
  12. 一键重装系统工具和U盘重装工具有什么区别?
  13. python爬虫接单发源地_python爬虫任务接单渠道
  14. Shell获取配置文件中一个字段的值
  15. zcu102出现运行可执行程序时出现的错误
  16. 心率检测仪的设计与实现
  17. 事务的概念及事务的四个特性
  18. C语言写的md5函数
  19. 淘宝排名查询接口,关键词排名API,宝贝排名查询,在线淘宝排名查询
  20. Hyperledger Fabric资产案例-链码实例

热门文章

  1. VUE货架详情之缩略图previewww
  2. Altium Designer输出gerber等生产文件
  3. OpenGL学习笔记(2)第一个程序——犹他茶壶(Teapot)
  4. 我的一加六手机升级安卓10后重启突然开不了机了
  5. OWASP Top10 2020
  6. ZYNQ中AXI4-Lite实现PS与PL通信
  7. 我国‘皇帝’一词的由来
  8. 跨境电商卖家如何利用Whatsapp有效快速开发客户
  9. echarts 动态更新、图表联动connect、事件、分发事件模拟用户行为dispatchAction、清空图表
  10. SpringBoot+Vue前后端分离