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

树莓派pico上手

0 介绍

不同于作为单板计算机的树莓派5,树莓派 pico 是一款低成本、高性能的微控制器板,具有灵活的数字接口。主要功能包括:

  • 英国树莓派公司设计的 RP2040 微控制器芯片
  • 双核 Arm Cortex M0+ 处理器,弹性的时钟频率高达 133 MHz
  • 264kB SRAM 和 2MB 板载闪存
    • RP2040 能够支持高达 16MB 的片外闪存,不过在 Pico 中只有 2MB。
  • USB 1.1,支持设备和主机
  • 低功耗睡眠和休眠模式
  • 通过 USB 使用大容量存储器进行拖放编程
  • 26 × 多功能 GPIO 引脚
  • 2 × SPI、2 × I2C、2 × UART、3 × 12 位 ADC、16 × 可控 PWM 通道
  • 精确的片上时钟和定时器
  • 温度传感器
  • 片上加速浮点库
  • 8 × 用于支持定制外设的可编程 I/O (PIO) 状态机

树莓派 pico W/WH 引脚定义布局

在这里插入图片描述

引脚附加说明:

  • 板子上有好几个地线,GPIO 有 8 个地线加上 3 针 Debug 连接器上的一个附加地线
  • 一个位于33号针脚的地线被指定为模拟地线
  • 所有与电源相关的引脚都被安排在了一起,靠近 microUSB 连接器
    • VBUS,这是来自 microUSB 总线的输出电源,5 V。如果 Pico 不是由 microUSB 连接器供电,那么这里将没有输出。
    • VSYS,这是输入电压,范围为 2 至 5 V。板载电压转换器将为 Pico 将其改为 3.3 V。
    • 3V3,这是 Pico 内部调节器的 3.3 伏输出。只要将负载保持在 300ma 以下,它就可用于为其他组件供电。
  • 几个输入可以控制 Pico 的电源
    • 3V3_EN,可以使用此输入禁用 Pico 的内部电压调节器,从而关闭 Pico 和由其供电的任何组件。
    • RUN,可以启用或禁用 RP2040 微控制器,也可以将其复位。

树莓派 Pico W 在保留 Pico 外形尺寸的同时,使用英飞凌 CYW43439 增加了板载单频 2.4GHz 无线接口(802.11n)。板载 2.4GHz 无线接口具有以下功能:

  • 无线(802.11n),单频(2.4 千兆赫)
  • WPA3
  • 软接入点,最多支持四个客户端
  • 蓝牙 5.2
    • 支持蓝牙 LE 中央和外设功能
    • 支持经典蓝牙

天线采用 ABRACON(前 ProAnt)授权的板载天线。无线接口通过 SPI 与 RP2040 微控制器连接。

由于引脚限制,部分无线接口引脚是共享的。CLK 与 VSYS 监视器共享,因此只有在没有 SPI 传输时,才能通过 ADC 读取 VSYS。英飞凌 CYW43439 DIN/DOUT 和 IRQ 均共享 RP2040 上的一个引脚。只有当 SPI 没有进行传输时,才适合检查 IRQ。接口的运行频率通常为 33MHz。

在 Pico 上进行编程开发

可以使用两种编程语言之一开始使用 Pico:

  • MicroPython,一种专门为微控制器制作的解释语言
  • C++,许多微控制器用户都熟悉 C++,因为它被用于 Arduino 和 ESP32 板上

使用 C++ 在树莓派 pico 上进行开发,能够更有效榨干 pico 的性能,但是 MicroPython 更容易上手。

1 使用 MicroPython 在 Pico 上进行编程开发

1.1 Thonny IDE

Thonny IDE 适用于Windows、Mac OSX 和 Linux,也是树莓派操作系统(以前的 Raspbian)的一部分。

这里在 Windows11 上使用 Thonny IDE 尝试利用 MicroPython 进行编程开发。

1.2 安装和启动 MicroPython
  • 将 microUSB 连接到 Pico 上,并准备将另一端插入电脑。在插入之前,先按下Pico上的Boot Select(开关)按钮。按住BOOTSEL键几秒钟,然后松开。

  • 在电脑上应该会看到一个新的驱动器,类似于将 U 盘插入电脑时的情况

    • 如果这里没有反应,可能是线的问题,需要使用具备数据传输功能的线
  • 打开新的 “驱动器”,会看到一个名为 RPI-RP2 的文件夹。在这个驱动器里,会看到几个文件,其中一个是网页文档index.htm,点击该网页文件,浏览器就会打开,会被重定向到树莓派 Pico 入门页面

  • 点击 MicroPython 入门的标签。会看到一个链接来下载一个 UF2 文件,这就是可下载的 MicroPython 文件。把这个文件下载到电脑上
    在这里插入图片描述

  • 现在将下载的文件拖到 Pico 的 RPI-RP2 文件夹中。一旦这样做了,文件夹就会消失,Pico 将以 MicroPython 模式启动

注:这里实际上将之前下载的 MUF2 文件拖进去之后,pico 会自动重启,重启后就看不到那个移动硬盘了

打开设备管理器,在端口一栏下有一个 USB 串行设备,记住方框中的东西,例如我的是 COM4
在这里插入图片描述

1.3 安装并配置 Thonny IDE
  • 去官网下载即可,链接:https://thonny.org/

    • 官网下载速度非常慢,还容易下载失败,也可以去 github 下载:https://github.com/thonny/thonny/releases
  • 安装并打开Thonny,然后选择视图,打开这三个
    在这里插入图片描述

  • 选择:工具 - 设置,按下图选择
    在这里插入图片描述

  • 下面的端口选择刚刚记住的那个,我的是 COM4 。点击确认,完成!

1.4 点亮板载 LED

在 Shell 中依此执行:

from machine import Pin
led = Pin(25, Pin.OUT)
led.value(1)

可以看到板载的 LED 亮了。

  • Hello World
    在 shell 中输入如下代码:

    print("Hello World")
    
  • 查看板子的型号
    对于用 MicroPython 编写的脚本,没有直接的方法可以通过查看硬件来确定它是运行在树莓派 Pico还是Pico W上。不过,可以通过查看特定 MicroPython 固件中是否包含网络功能来间接判断:

    import network
    if hasattr(network, "WLAN"):print("pico-W")
    else:print("pico")
    

    也可以使用 sys 模块检查 MicroPython 固件版本,以查看它是针对树莓派Pico还是Pico W编译的。

    import sys
    sys.implementation
    
1.5 脚本测试

前面的实验都是在 Shell 中执行的,这样存在缺点:

  • 一旦执行了程序,代码就会消失
  • 对于比较大/复杂的程序来说,很不方便

可以直接在编辑器中编写程序代码,代码编写完成之后,可以通过 ctrl+s 来保存代码,这个时候会弹出选择存放在本地电脑或Pico上。可以选择存放在 pico 上,并给代码命名,名称需要以 .py 结尾。

此时脚本就保存在 pico 上了,可以通过执行按钮来执行脚本。

1.6 在没有主机的情况下运行脚本

开发好的程序,希望能够独立在 pico 上运行,由 microUSB 端口或通过 Pico VSYS 电源输入供电,而不是每次都需要让其通过连接主机上手动执行。前面的方式都是从 Thonny IDE 将程序加载到 Pico 上运行的,依赖连接的主机。

前面已经将脚本保存在 pico 上了,只需要把脚本命名为main.py即可,这样当 Pico 启动时,它会查找名为main.py的程序。如果它找到了它,就会加载它并在启动时运行它。

此时把 pico 从主机上拔下来,只需要给其供电,pico 就会在启动之后自动执行 main.py

2 使用 C/C++ 在 Pico 上进行编程开发

这里使用的编辑器是 CLion 和 VS-Code,这两个二选一即可。

2.1 准备软件/文件
2.1.1 下载 SDK

clone 这个仓库,也就是下载这个仓库的代码:https://github.com/raspberrypi/pico-sdk

git clone https://github.com/raspberrypi/pico-sdk
2.1.2 下载示例代码

clone这个仓库,也就是下载这个仓库的代码:https://github.com/raspberrypi/pico-examples

git clone https://github.com/raspberrypi/pico-examples
2.1.3 下载安装 gcc-arm-none-eabi

下载链接在这个网站里:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

windows 下载这个就可以:gcc-arm-none-eabi-xxxx-win32.exe
在这里插入图片描述

安装,注意记住安装位置。

2.2 配置环境
2.2.1 CLion

在 CLion 中打开示例代码项目文件夹 pico-examples,进入设置,找到 CMake
在这里插入图片描述

配置环境
在这里插入图片描述

加入两个:

  • PICO_SDK_PATH :值为下载的 pico sdk 的目录
  • PICO_TOOLCHAIN_PATH :安装 gcc-arm-none-eabi 的目录下的 bin 目录

配置完成!

2.2.2 VS-Code

打开Visual StudioDeveloper Command Prompt 命令行,cmd 不行的

输入 code 打开 VSCode,必须这样打开!

然后安装 cmake tools 插件,重启 VSCode,依然是从 Developer Command Prompt 命令行打开 VSCode!

打开设置,选择拓展 - CMake Tools Configuration - Configure Environment - 添加项

在这里插入图片描述

加入两个:

  • PICO_SDK_PATH :值为下载的 pico sdk 的目录
  • PICO_TOOLCHAIN_PATH :安装 gcc-arm-none-eabi 的目录下的 bin 目录

再选择拓展 - CMake Tools Configuration - Generator,设置值为 NMake Makefiles
在这里插入图片描述

关闭设置,打开示例代码文件夹,右下角出现是否配置项目,点 。然后提示配置项目,选择 GCC for arm-none-eabi
在这里插入图片描述

配置完成!

2.3 点亮板载 LED

以 CLion 为例,打开示例代码下的 blink 下的 blink.c ,点击构建:
在这里插入图片描述

构建完成后,在 cmake-build-debug/blink/elf2uf2 目录下可以找到 blink.uf2 文件,这即是编译后的需要烧录的文件

按住 pico 上的按钮,使用 USB 线连接电脑后松开按钮,将 blink.uf2 拖进去。

OK,pico 自动重启,LED 已经亮了!

这个时候应该已经发现了,没错,MicroPython 的固件也是 .uf2 后缀,说明 MicroPython 也是用 C 写出来、编译好的。

3 添加 OLED 屏幕

可以将一个 OLED 显示器连接到 Pico 上,这样就可以在上面打印一些东西。

显示屏使用的是 0.91 英寸 I2C 协议的 OLED 屏,OLED 屏幕模块和树莓派 Pico 的 GPIO 连线如下:

OLEDPICO
VCC(电源正3.3-5V)3V3
GNDGND
SCL(I2C时钟线)GP21
SDA(I2C数据线)GP20

显示器需要一个库,可以使用 Thonny ID 安装:

  • 点击 "工具 "菜单
  • 点击 “管理包”
  • 搜索 “ssd1306”
  • 找到 "ssd1306"并安装它
3.1 OLED 显示屏的演示脚本
# 树莓派 Pico OLED Display Test
# Uses ssd1306 moduleimport machine
import utimesda=machine.Pin(20)
scl=machine.Pin(21)i2c=machine.I2C(0, sda=sda, scl=scl, freq=400000)from ssd1306 import SSD1306_I2C
oled = SSD1306_I2C(128, 32, i2c)print(i2c.scan())oled.text('Welcome to the', 0, 0)
oled.text('Pi Pico-W', 0, 10)
oled.text('Display Demo', 0, 20)
oled.show()
utime.sleep(4)oled.fill(1)
oled.show()
utime.sleep(2)
oled.fill(0)
oled.show()while True:oled.text("Hello World",0,0)for i in range (0, 164):oled.scroll(1,0)oled.show()utime.sleep(0.01)

这里的 OLED 显示屏是一个 I2C 设备,所以在脚本的开头将两个 GPIO 引脚定义为 SDA (GPIO 20) 和 SCL (GPIO 21)。

Pico 有两条 I2C 总线,可以使用几种不同的 GPIO 引脚来连接它们。但它们并不是随便的引脚,例如某些引脚被指定为总线 0 的 SDA,只有它们才能用于 SDA 总线 0。

使用机器库的I2C函数定义一个 I2C 连接。我们需要给它提供以下参数。

  • I2C总线号,例子中是 0
  • SDA引脚
  • SCL引脚
  • I2C总线频率,例子中是400KHz

这里我们没有传递 I2C 地址。因为 SD1306 OLED 显示器有一个固定的 I2C 地址,所以我们不需要指定它。不过,在这里添加了一行与显示器无关的内容,但可以扫描 I2C 总线,并打印出它发现占用的地址。在 Shell 中打印出来的是十进制,而不是十六进制。

3.2 显示 Pico 的系统信息

下面的代码可以用来打印树莓派 Pico 的系统信息,包括 MicroPython 版本号、内建模块清单、CPU 频率、内存大小、磁盘空间使用情况等。

import uos
d = uos.uname()
print('board name:', d[4])
print('micropython version:', d[2])
print('\nbuildin modules:')
help('modules')import machine
print('\nsystem freq: {} MHz'.format(machine.freq()//1000000))import gc
print('memory:', gc.mem_free() + gc.mem_alloc())d = uos.statvfs('/')
print('Disk size:')
print('total:', d[0]*d[2])
print('free:', d[0]*d[3])

对上面的脚本做一点点的修改,并保存到 pico 上,命名为main.py,就可以在 pico 启动后再 OLED 上显示 pico 的系统信息。
main.py

import uos
import machine
import utime
import gc
import timedef stat():sda=machine.Pin(20)scl=machine.Pin(21)i2c=machine.I2C(0, sda=sda, scl=scl, freq=400000)from ssd1306 import SSD1306_I2Coled = SSD1306_I2C(128, 32, i2c)d = uos.uname()oled.text(f'{d[4]}', 0, 0)oled.text('Mem: {:.2f}% {:.0f}KB'.format(gc.mem_alloc()/(gc.mem_free() + gc.mem_alloc()) * 100, (gc.mem_free() + gc.mem_alloc()) / 1024), 0, 11)d = uos.statvfs('/')if int(time.time()) % 2 == 0:oled.text(f'CPU Freq: {machine.freq()//1000000}MHz', 0, 22)else:oled.text('Disk: {:.2f}% {:.0f}KB'.format((d[0]*d[2] - d[0]*d[3]) / (d[0]*d[2]) * 100, d[0]*d[2] / 1024), 0, 22)oled.show()utime.sleep(1.5)if __name__ == "__main__":d = uos.statvfs('/')print("d[0]*d[2] - d[0]*d[3]:", d[0]*d[2] - d[0]*d[3])print("d[0]*d[2]:", d[0]*d[2])print("d[0]*d[3]:", d[0]*d[3])while True:stat()

相关文章:

树莓派pico上手

0 介绍 不同于作为单板计算机的树莓派5,树莓派 pico 是一款低成本、高性能的微控制器板,具有灵活的数字接口。主要功能包括: 英国树莓派公司设计的 RP2040 微控制器芯片双核 Arm Cortex M0 处理器,弹性的时钟频率高达 133 MHz26…...

TypeError: load() missing 1 required positional argument: ‘Loader‘

标题TypeError: load() missing 1 required positional argument: ‘Loader’ 源码: 处理后: 顺利通过,由于yaml版本导致的问题...

根据软件架构设计与评估的叙述开发一套机器学习应用开发平台

案例 阅读以下关于软件架构设计与评估的叙述,回答问题 1和问题 2。 【说明】 某公司拟开发一套机器学习应用开发平台,支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习流程&…...

【隐私计算篇】利用多方安全计算MPC实现VGG16人脸识别隐私推理

1. 背景介绍 本文主要介绍一种利用多方安全计算MPC技术,实现VGG16的人脸识别模型,侧重于模型推理阶段,目前已经公开专利,因此以下内容的分享都是基于公开材料。该分享涉及到最小化多方安全计算(MPC)以及明密文混合计算的思想&…...

Python 入门教程(3)基础知识 | 3.7、pass 关键字

文章目录 一、pass 关键字1、定义与用法2、pass 关键字的用法2.1、函数定义中的占位符2.2、 类定义中的占位符2.3、条件语句中的占位符2.4、循环中的占位符 3、注意事项 一、pass 关键字 1、定义与用法 pass语句用作将来代码的占位符。当执行pass语句时,不会有任何…...

nodejs基于vue+express度假村旅游管理系统设计与实现7t82p

目录 功能介绍数据库设计具体实现截图技术栈技术论证解决的思路论文目录核心代码风格详细视频演示源码获取 功能介绍 实现了一个完整的农家乐系统,其中主要有用户表模块、关于我们模块、收藏表模块、公告信息模块、酒店预订模块、酒店信息模块、景区信息模块、景区…...

【裸机装机系列】16.kali(ubuntu)-安装linux和win双系统-重装win11步骤

推荐阅读: 1.kali(ubuntu)-为什么弃用ubuntu,而选择基于debian的kali操作系统 注意: 要先装windows,再装linux,不然linux的启动分区会被覆盖掉。为什么双系统要先装windows呢? 在一个新硬盘上&#xff0…...

基于TypeScript+React+AntDesign 的车辆车型管理页面

项目目录结构: my-app/├── node_modules/├── public/├── src/│ ├── App.js│ ├── VehicleForm.js│ └── index.js├── package.json└── README.md目录 1.创建项目 2.列表页面VehicleForm.js,预留接口使用axios 1.创建项目 npx crea…...

sentinel-dashboard数据 redis 持久化

概述 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来…...

【C++】——vector深度剖析模拟实现

低头赶路,敬事如仪 目录 1、模拟vector 1.1底层结构 1.2构造析构 1.3尾插扩容 1.4迭代器 1.5增删查改 1.6模拟中的注意事项 2、vector模拟补充 2.1迭代器区间构造问题 2.2memcpy深浅拷贝问题 2.3动态二维数组的模拟及遍历 1、模拟vector 想要模拟实现自…...

OpenCV特征检测(11)从一组点中检测直线的函数

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在一组点中使用标准霍夫变换查找直线。 该函数使用霍夫变换的一种改进方法在一组点中查找直线。 HoughLinesPointSet 是 OpenCV 中的一个函数&a…...

C++_24_适配器

A 函数对象 概念&#xff1a; ​ 重载函数调用运算符的类实例化的对象&#xff0c;就叫函数对象.又名仿函数,函数对象和&#xff08;)触发重载函数调用运算符的执行。 作用&#xff1a; ​ 为算法提供策略 示例&#xff1a; #include <iostream> using namespace s…...

算法.图论-并查集

文章目录 1. 并查集介绍2. 并查集的实现2.1 实现逻辑2.2 isSameSet方法2.3 union方法(小挂大优化)2.4 find方法(路径压缩优化) 3. 并查集模板4. 并查集习题4.1 情侣牵手4.2 相似字符串组 1. 并查集介绍 定义&#xff1a; 并查集是一种树型的数据结构&#xff0c;用于处理一些不…...

elasticSearch常见命令及历史数据迁移

es这种非关系型数据库&#xff0c;感觉可视化效果不是很好&#xff0c;个人在操作中&#xff0c;习惯性通过简单的方式去访问。也是接触不久。只能出一些基操。共同学习记录&#xff0c;大家有好的操作也可留言备注。 1&#xff0c;常见命令 1&#xff09;查询有哪些index&…...

WebLogic 漏洞复现

1、后台弱⼝令GetShell 默认账号密码&#xff1a;weblogic/Oracle123 weblogic常⽤弱⼝令&#xff1a;https://cirt.net/passwords?criteriaweblogic 这⾥注意&#xff0c; 单个账号错误密码5次之后就会⾃动锁定。 http://47.121.212.195:7001/console 2、登录后台后&#…...

web基础:域名、网页、HTML、web版本

文章目录 引言域名网站访问方式域名结构域名解析DNS解析过程 网页网页文件类型静态网页与动态网页常用动态网页编程语言 HTMLHTML 语法规则HTML 文件结构HTML 文件基本结构示例&#xff1a;常用 HTML 标签HTML文件基本结构 WEB版本 引言 web&#xff08;World Wide Web&#x…...

【项目案例】物联网比较好的10+练手项目推荐,附项目文档/源码/视频

练手项目推荐 1 智能小车 项目功能介绍&#xff1a; 本项目由三部分组成&#xff1a;应用端&#xff08;微信小程序&#xff09;、设备端&#xff08;Hi3861&#xff09;、驱动端&#xff08;UPS&#xff09;。 1. 应用端&#xff0c;采用微信小程序作为应用端控制界面。在开…...

AWS注册时常见错误处理

引言 创建AWS账号是使用AWS云服务的第一步&#xff0c;但在注册过程中可能会遇到一些常见的问题。本文中九河云将帮助您排查和解决在创建AWS账户时可能遇到的一些常见问题&#xff0c;包括未接到验证电话、最大失败尝试次数错误以及账户激活延迟等。 常见问题及解决方法 1. …...

Spark-RDD持久化

一、Spark的三种持久化机制 1、cache 它是persist的一种简化方式&#xff0c;作用是将RDD缓存到内存中&#xff0c;以便后续快速访问&#xff0c;提高计算效率。cache操作是懒执行的&#xff0c;即执行action算子时才会触发。 2、persist 它提供了不同的存储级别&#xff0…...

vue2中使用tailwindCss 详细教程

1、先看官方文档:https://www.tailwindcss.cn/ 2、先安装:npm install -D tailwindcss ---------------通过 npm 安装 tailwindcss,然后创建你自己的 create your tailwind.config.js 配置文件。 npm install -D tailwindcss 3、初始化文件—npx tailwindcss init npx ta…...

机器视觉工程师一直做调试,维护岗位,想转岗软件方面C#从零开始,快则三年不到,慢则一辈子不会

其实不是每一家做视觉检测&#xff0c;或者是做设备必须要机器视觉工程师开发&#xff0c;其实公司对标准软件更感兴趣&#xff0c;主要非常高的性价比&#xff0c;省时省钱省人。所以这里有个问题&#xff0c;就是公司平台的重要性&#xff0c;首先他对开发是刚需&#xff0c;…...

【初阶数据结构】详解二叉树 - 树和二叉树(三)(递归的魅力时刻)

文章目录 前言1. 二叉树链式结构的意义2. 手搓一棵二叉树3. 二叉树的遍历&#xff08;重要&#xff09;3.1 遍历的规则3.2 先序遍历3.3 中序遍历3.4 后序遍历3.5 遍历的代码实现3.5.1 先序遍历代码实现3.5.2 中序遍历代码实现3.5.3 后序遍历代码实现 4. 统计二叉树结点的个数5.…...

【QT】QWidget 重要属性

文章目录 enabledgeometrywindowTitlewindowIconqrc 机制windowOpacitycursorfontQFont toolTip 和 toolTipDurationfocusPolicyQt::FocusPolicy styleSheet enabled 作用&#xff1a;设置控件是否可使用. true 表⽰可用, false 表⽰禁用. 对应的API bool isEnabled(); // 获…...

什么是数据库连接池?为什么需要使用连接池?

什么是数据库连接池&#xff1f;为什么需要使用连接池&#xff1f; 什么是数据库连接池&#xff1f; 数据库连接池是一种创建和管理数据库连接的技术。在传统的应用程序中&#xff0c;每当需要与数据库进行交互时&#xff0c;都会创建一个新的数据库连接。 这种做法虽然简单…...

2024ICPC网络赛第一场C. Permutation Counting 4(线性代数)

题目链接 题目大意&#xff1a;给你n个范围[ l i , r i l_i,r_i li​,ri​]&#xff0c;每个位置可以在这个范围中选择一个数&#xff0c;然后形成排列1到n的排列p。问p的所有情况的个数的奇偶性。 一个很妙的行列式转化&#xff0c;纯纯的线性代数。 首先&#xff0c;我们把…...

01.前端面试题之ts:说说如何在Vue项目中应用TypeScript?

文章目录 一、前言二、使用Componentcomputed、data、methodspropswatchemit 三 、总结 一、前言 与link类似 在VUE项目中应用typescript&#xff0c;我们需要引入一个库vue-property-decorator&#xff0c; 其是基于vue-class-component库而来&#xff0c;这个库vue官方推出…...

【HTTP】方法(method)以及 GET 和 POST 的区别

文章目录 方法&#xff08;method&#xff09;登录上传GET 和 POST 有什么区别&#xff08;面试&#xff09;区别不准确的说法 方法&#xff08;method&#xff09; 首行中的第一部分。首行是由方法、URL 和版本号组成 方法描述了这次请求想干什么&#xff0c;最主要的是&…...

Ubuntu NFS 搭建及配置

在 Ubuntu 上搭建和配置 NFS&#xff08;Network File System&#xff09;服务器&#xff0c;可以让其他设备通过网络访问共享的文件夹。以下是步骤指南&#xff1a; 1. 安装 NFS 服务器 首先&#xff0c;安装 NFS 服务器软件包&#xff1a; sudo apt update sudo apt insta…...

双十一好物推荐,这些值得入手的宝藏产品

随着双十一的钟声即将敲响&#xff0c;这个万众期待的购物盛宴就要来临&#xff01;为了让大家避免在众多的商品中不知所措&#xff0c;妮妮精心筹备了一份购物清单&#xff0c;分享那些我亲身感受超棒&#xff0c;觉得十分值得购买的物品。 这些商品不但价格合理&#xff0c;而…...

秋招内推2025--招联金融

【投递方式】 直接扫下方二维码&#xff0c;或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus&#xff0c;使用内推码 igcefb 投递&#xff09; 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…...