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

RL78/G15 Fast Prototyping Board Arduino IDE 平台开发过程

这是一篇基于RL78/G15 Fast Prototyping Board的Arduino IDE开发记录

  • RL78/G15 Fast Prototyping Board
    • 硬件简介(背景)
    • 基础测试(方法说明/操作说明)
    • 开发环境搭建(方法说明/操作说明+代码+结果)
      • Arduino IDE RL78/G15的拉取方法:
        • (1)文件--首选项--
        • (2)工具--开发板--开发板管理器--关键字“RL”--搜索并安装RL78/G15-20p…
        • (3)给硬件上电,设备管理器获取串口
        • (4)工具--端口--选择硬件端口--选择设备管理器中新增的串口COMxx
        • (5)工具--选择开发板--选择RL78/G15...
        • (6)文件--示例
    • 通用示例测试(方法说明/操作说明+代码+结果)
    • 测评ADC任务功耗
      • 进行ADC基础实验
      • 进行功耗测试实验
    • 心得体会
    • 引用

RL78/G15 Fast Prototyping Board

硬件简介(背景)

RL78/G15 快速原型开发板配备 RL78/G15 微控制器,是一种专门用于各种应用开发试产的原型开发板。 它只需连接 USB 线即可编写/调试程序,无需任何其他工具即可着手评估。 此外,它还可以使用传统 E2 仿真器和 E2 仿真器 Lite 实现高性能调试(有关方法,请参考用户手册)。 标配 Arduino Uno 和 Pmod™ 接口,具有高度的可扩展性,譬如能够访问微控制器的所有引脚。1

可以在RL78/G15快速入门指南下载对应的快速入门指南,这里有硬件相关的一些内容,也是测评前对硬件必须要的基础的了解:
在这里插入图片描述
在这里插入图片描述
可以看到,RL78/G15 Fast Prototyping Board是沿用基于Arduino的布局风格,甚至于引脚和UNO-R3是完全兼容的,所以,可以替代R3作为基板对以前的模块开发进行快速功能验证。
在这里插入图片描述
更多的,硬件上,RL78/G15 Fast Prototyping Board设计了PMOD接口,用户可以根据这个接口设计不同的模块来快速接入,和测试,弥补了UNO-R3方式开发杜邦线接来接去的困恼!可以看到PMOD涵盖了SPI/IIC/UART多种通信协议,几乎可以通用所有的模块设计,除了用户自己按着引脚开发拓展套件外,也期待一下后续RENESAS官方的设计和扩展这个系列的模组板。

基础测试(方法说明/操作说明)

拿到开发板之后,首先还是需要对关键的电源引脚进行简单测试,避免因为SMT生产过程中产生连锡等,造成短路,特别是VCC和GND,推荐使用万用表短路档进行测试:
在这里插入图片描述
测试均无SMT不良等现象产生时,可以允许接入个人电脑中。这一个步骤是非常关键的——特别是对于USB-HUB没有隔离硬件的时候,如果出现PWR-GND短路现象,是非常容易产生不可挽回的损失的。

在对硬件进行检查时,更多的或许需要依赖硬件原理图进行,对应的原理图等PCB设计文档下载链接:RL78/G15 Fast Prototyping Board Design and Gerber Files

当然为了方便调试,这里直接提供PNG格式的原理图供快速查看:
在这里插入图片描述
在这里插入图片描述

开发环境搭建(方法说明/操作说明+代码+结果)

本次选择的开发环境是Arduino IDE 1.8.19,(当然也可以使用RENCESAS官方原生的开发环境,官方开发环境中也可以对RL78/G15进行开发)。
在这里插入图片描述
为了避免环境太高导致无法适配GITHUB开源的项目库,推荐使用1.8.19版本,笔者是在Windows Store商店直接下载的,也可以到链接Arduino IDE下载(注意:历史版本需要往下拉,下方会提供以往的版本共给用户下载,其中右上角可以选择对应的系统环境):
在这里插入图片描述
完成IDE平台软件的安装后,可以进行RENESAS系列板项目库拉取,其链接:RENESAS系列板项目库,在这个项目库中,可以选择合适的板子进行URL拉取,其中本次测评RL78/G15,因此选择RL78/G15 boards manager URL进行拉取。

在这里插入图片描述

Arduino IDE RL78/G15的拉取方法:

(1)文件–首选项–

将上述链接添加到附加开发板管理器网址中
(如果不会获取,可以拷贝此处链接:RL78/G15 boards manager URL)
在这里插入图片描述

(2)工具–开发板–开发板管理器–关键字“RL”–搜索并安装RL78/G15-20p…

在这里插入图片描述
如果发生下列错误,解决方法是手动下载工具存档(可以从包索引文件中提取存档下载URL),然后将其放入开发板管理器的下载缓存中。在这里插入图片描述

比如WINDOW系统,手动下载后,放置在arduino IDE的缓存文件夹下,参考C:\Users<用户名>\AppData\Local\Arduino15\packages,如果更改了,也是在类似的地址,将zip放置在该文件夹中,可以跳过IDE联网下载环节,进入解压安装环节。

如果手动都下不了的朋友,请从这里获取:
Library-rl78g15-fpb-1.2.1.zip
llvm-17.0.1.202406-rl78-elf.zip
win32-tool-rl78g1x-1.1.0.zip

(3)给硬件上电,设备管理器获取串口

在这里插入图片描述

(4)工具–端口–选择硬件端口–选择设备管理器中新增的串口COMxx

在这里插入图片描述

(5)工具–选择开发板–选择RL78/G15…

在这里插入图片描述

(6)文件–示例

打开示例后,会发现,没有示例!
在这里插入图片描述
但是这就是兼容UNO的,所以,UNO能用的,RL78/G15全部映射完成了(当用户安装完成(Library-rl78g15-fpb-1.2.1.zip)之后),因此,可以直接使用内置示例进行开发使用即可。
在这里插入图片描述

通用示例测试(方法说明/操作说明+代码+结果)

从原理图中,可以知道:
LED1—P20—PIN7
LED2—P21—PIN4
在这里插入图片描述
话不多说,直接上代码:

const int LED1Pin = 7;
const int LED2Pin = 4;void setup() {// put your setup code here, to run once:pinMode(LED1Pin, OUTPUT);
}void loop() {// put your main code here, to run repeatedly:digitalWrite(LED1Pin, HIGH);   // turn the LED on (HIGH is the voltage level)delay(500);                       // wait for a seconddigitalWrite(LED1Pin, LOW);    // turn the LED off by making the voltage LOWdelay(500);                       // wait for a second
}

在Arduino IDE中进行验证,上传,注意等待,不要cao之过急:
在这里插入图片描述
等待烧录进去Write Complete 时,即可观察实验现象:
请添加图片描述
对应现象:可以看到LED1每隔1000ms进行一次闪烁,这里故意定义了两个LED,但是只使用其中一个,以说明LED的映射是正确的。

拓展代码:

const int LED2Pin = 4;void setup() {// put your setup code here, to run once:pinMode(LED1Pin, OUTPUT);pinMode(LED2Pin, OUTPUT);
}void loop() {// put your main code here, to run repeatedly:digitalWrite(LED1Pin, HIGH);   // turn the LED on (HIGH is the voltage level)digitalWrite(LED2Pin, LOW);delay(500);                       // wait for a seconddigitalWrite(LED1Pin, LOW);    // turn the LED off by making the voltage LOWdigitalWrite(LED2Pin, HIGH);delay(500);                       // wait for a second
}

对应现象:LED1和LED2进行交替闪烁
请添加图片描述

测评ADC任务功耗

进行ADC基础实验

接下来开始,编写ADC相关的部分,ADC,模数转换,使用到相关的Analog引脚。直接上代码:

#include <Arduino.h>
const int analogInPin = A0; // A0---P23定义模拟输入引脚
int adcValue = 0; // 存储模拟输入的值
float voltage = 0;void setup() {// put your setup code here, to run once:Serial.begin(115200);}void loop() {// put your main code here, to run repeatedly:adcValue = analogRead(analogInPin); // 读取模拟输入的值voltage = adcValue * (5.0 / 1023.0); // 将模拟输入的值转换为电压值// 打印输出Serial.print("sensor = ");Serial.print(adcValue);Serial.print("\t vol = ");Serial.print(voltage);Serial.println("V");delay(2); // 延迟2毫秒}

在这里插入图片描述
对应的实物,如上图连接。将A0探测脚,连接到板载的3V3引脚上,观察实验输出:

在这里插入图片描述
可以看到,在未进行校准时,输出接近3V3。
在这里插入图片描述

接下来将测量输入引脚,接到我们开源的一款LDO载板上,观察+1V8的采集:
在这里插入图片描述
同样的,将测量输入引脚,接到我们开源的一款LDO载板上,观察+3V3的采集:
在这里插入图片描述
显然的,板载的3V3输出比模块板的LDO要稳定得多。

进行功耗测试实验

本实验使用到电流表,这里使用DMM6500作为电流表,接线图如下图所示,将DCI作为电流表,连接到电路系统供电路中,进行功耗测试,单独采集板载3V3时,观察其整板功耗:(使用DMM6500 DCI档位,测低端采样电流)
在这里插入图片描述
在这里插入图片描述
从采集数据中,可以看到,上电后,单通道ADC任务,整体功耗16mA@5V,包含板载其他器件(LED等)。
在这里插入图片描述
取区间80s到100s,放大可以看到,整体的功耗波动也非常平稳。

心得体会

再次感谢瑞萨嵌入式小百科公众号的测评名额,本文中,主要使用了Arduino IDE对RL78/G15进行环境搭建与开发。在开发过程中,实际上比较苦恼语言问题,在github中大多数的讲解说明都是以日本语作为主要语言,并且在官网中,关于Arduino IDE平台的基础示例几乎没有。在深度了解后,惊然发现,Renesas官方在Arduino IDE库中几乎对所支持的Arduino系列的Renesas板子如RL78/G15等,几乎所有适配的引脚都进行了高度映射,几乎完美兼容原生UNO的所有函数和API。

实际上,在官网中,也有关于Arduino API从e2studio到Arduino IDE的移植指南:
在这里插入图片描述
在这里插入图片描述
最后,比较让我意外的是,RL78/G15即使使用Arduino IDE平台的高度封装的语言,也在ADC寻常模式应用时可以保持如此低的功耗,并且可以将模块LDO的纹波都可以采集到,说明其采样精度和稳定性也非常高。

下一步计划是配置多通道ADC,采集外部多路电压,并且调度MCU进入低功耗模式,搭建系统,相信这RL78/G15 20P一定会给我带来惊喜。

本文就到此完成,喜欢关注我,我会持续更新RL78/G15的使用!

引用


  1. RL78/15G官网首页 ↩︎

相关文章:

RL78/G15 Fast Prototyping Board Arduino IDE 平台开发过程

这是一篇基于RL78/G15 Fast Prototyping Board的Arduino IDE开发记录 RL78/G15 Fast Prototyping Board硬件简介&#xff08;背景&#xff09;基础测试&#xff08;方法说明/操作说明&#xff09;开发环境搭建&#xff08;方法说明/操作说明代码结果&#xff09;Arduino IDE RL…...

YOLOv11 NCNN安卓部署

YOLOv11 NCNN安卓部署 前言 yolov11 NCNN安卓部署 目前的帧率可以稳定在20帧左右&#xff0c;下面是这个项目的github地址&#xff1a;https://github.com/gaoxumustwin/ncnn-android-yolov11 上面的检测精度很低时因为这个模型只训练了5个epoch&#xff0c;使用3090训练一个…...

对载入的3dtiles进行旋转、平移和缩放变换。

使用 params: {tx: 129.75845, //模型中心X轴坐标&#xff08;经度&#xff0c;单位&#xff1a;十进制度&#xff09;//小左ty: 46.6839, //模型中心Y轴坐标&#xff08;纬度&#xff0c;单位&#xff1a;十进制度&#xff09;//小下tz: 28, //模型中心Z轴坐标&#xff08;高…...

Rust个人认为将抢占C和C++市场,逐渐成为主流的开发语言

本人使用C开发8年、C#开发15年、中间使用JAVA开发过项目、后期在学习过程中发现了Rust语言说它是最安全的语言&#xff0c;能够解决C、C的痛点、于是抽出一部分时间网上买书&#xff0c;看网上资料进行学习&#xff0c;这一学习起来发现和其它语言比较起来&#xff0c;在编码的…...

在openEuler中使用top命令

在openEuler中使用top命令 概述 top 命令是Linux系统中最常用的实时性能监控工具之一,允许用户查看系统的整体状态,包括CPU使用率、内存使用情况、运行中的进程等。本文档将详细介绍如何在openEuler操作系统中有效利用top命令进行系统监控。 启动top命令 打开终端并输入t…...

探索文件系统,Python os库是你的瑞士军刀

文章目录 探索文件系统&#xff0c;Python os库是你的瑞士军刀第一部分&#xff1a;背景介绍第二部分&#xff1a;os库是什么&#xff1f;第三部分&#xff1a;如何安装os库&#xff1f;第四部分&#xff1a;简单库函数使用方法1. 获取当前工作目录2. 改变当前工作目录3. 列出目…...

【小白学机器学习41】如何从正态分布的总体中去抽样? 获得指定正态分布的样本的2种方法

目录 1 目标&#xff1a;使用2种方法&#xff0c;去从正态分布的总体中去抽样&#xff0c;获得样本 1.1 step1: 首先&#xff0c;逻辑上需要先有符合正态分布的总体population 1.2 从总体中取得样本&#xff0c;模拟抽样的过程 2 从正态分布抽样的方法1 3 从正态分布抽样…...

将VSCode设置成中文语言环境

目录 VSCode默认是英文语言环境&#xff0c;这对于像我这种英语比较菜的人来说不是那么友好 另外也习惯了用中文&#xff0c;所以接下来介绍下如何将VSCode设置成中文语言环境。 1、打开VSCode软件&#xff0c;按快捷键【CtrlShiftP】 2、在弹出的搜索框中输入【configure l…...

Applied Intelligence投稿

一、关于手稿格式&#xff1a; 1、该期刊是一个二区的&#xff0c;模板使用Springer nature格式&#xff0c; 期刊投稿要求&#xff0c;详细期刊投稿指南&#xff0c;大部分按Soringernature模板即可&#xff0c;图片表格声明参考文献命名要求需注意。 2、参考文献&#xff…...

AI-agent矩阵营销:让品牌传播无处不在

矩阵营销是一种通过多平台联动构建品牌影响力的策略&#xff0c;而 AI-agent 技术让这一策略变得更加智能化。AI社媒引流王凭借其矩阵管理功能&#xff0c;帮助品牌在多个平台上实现深度覆盖与精准传播。 1. 矩阵营销的优势 品牌触达更广&#xff1a;多平台联动可以覆盖不同用…...

【0346】Postgres内核 Startup Process 通过 signal 与 postmaster 交互实现 (5)

1. Startup Process 进程 postmaster 初始化过程中, 在进入 ServerLoop() 函数之前,会先通过调用 StartChildProcess() 函数来开启辅助进程,这些进程的目的主要用来完成数据库的 XLOG 相关处理。 如: 核实 pg_wal 和 pg_wal/archive_status 文件是否存在Postgres先前是否发…...

NSSCTF-做题笔记

[羊城杯 2020]easyre 查壳&#xff0c;无壳&#xff0c;64位&#xff0c;ida打开 encode_one encode_tow encode_three 那么我们开始一步一步解密&#xff0c;从最外层开始 def decode_three(encrypted_str):decrypted_str ""for char in encrypted_str:char_code …...

【小白学机器学习35】数据表:整洁数据表,交叉表/列联表,以及两者转化pd.pivot_table()

目录 1 虽然这是个很基础的知识&#xff0c;但是我觉得有必要记录下 2 整洁数据表 3 交叉数据表的2种形式 3.0 交叉表的名字 3.1 2维的交叉表 3.2 用2维表现3维的 3.3 上述内容&#xff0c;具体的markdown文本 4 交叉数据表 4.1 交叉数据表并不整洁 4.2 但是交叉表也…...

springboot旅游管理系统的设计与实现

springboot旅游管理系统的设计与实现 如需源码pc端&#x1f449;&#x1f449;&#x1f449;资源 手机端&#x1f449;&#x1f449;&#x1f449;资源 摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于…...

k8s 1.28 聚合层部署信息记录

–requestheader-client-ca-file –requestheader-allowed-namesfront-proxy-client –requestheader-extra-headers-prefixX-Remote-Extra- –requestheader-group-headersX-Remote-Group –requestheader-username-headersX-Remote-User –proxy-client-cert-file –proxy-cl…...

自由学习记录(25)

只要有修改&#xff0c;子表就不用元表的参数了&#xff0c;用自己的参数&#xff08;只不过和元表里的那个同名&#xff09; 子表用__index“继承”了父表的值&#xff0c;此时子表仍然是空表 一定是创建这样一个同名的变量在原本空空的子表里&#xff0c; 传参要传具体的变…...

关于函数式接口和编程的解析和案例实战

文章目录 匿名内部类“匿名”在哪里 函数式编程lambda表达式的条件Supplier使用示例 ConsumeracceptandThen使用场景 FunctionalBiFunctionalTriFunctional 匿名内部类 匿名内部类的学习和使用是实现lambda表达式和函数式编程的基础。是想一下&#xff0c;我们在使用接口中的方…...

Linux 僵尸进程和孤儿进程, 进程优先级

僵尸进程 之间在进程状态中了解到了 "僵尸状态". 那么处于僵尸状态的进程就是僵尸进程. 僵尸状态是一种特殊的进程状态, 它表示一个进程已经完成执行, 但其父进程尚未回收其终止状态. "僵尸状态" 的本质就是死亡状态. 如何理解僵尸进程: 举个例子: 一个正…...

爬虫笔记24——纷玩岛自动抢票脚本笔记

纷玩岛自动抢票&#xff0c;协议抢票思路实现 一、获取Authorization凭证二、几个关键的参数三、几个关键的接口获取参数v&#xff0c;这个参数其实可以写死&#xff0c;可忽略通过价位获取演出的参数信息获取观演人信息&#xff0c;账号提前录入即可提交订单接口 先看实现图&a…...

《白帽子讲Web安全》15-16章

《白帽子讲Web安全》15-16章 《白帽子讲Web安全》15章15、Web Server配置安全15.1、Apache安全15.2、Nginx安全15.3、jBoss远程命令执行15.4、Tomcat远程命令执行15.5、HTTP Parameter Pollution15.6、小结 第四篇 互联网公司运营安全《白帽子讲Web安全》16章16、互联网业务安全…...

计算机毕业设计Python+LSTM天气预测系统 AI大模型问答 vue.js 可视化大屏 机器学习 深度学习 Hadoop Spark

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

大语言模型压缩技术;推理优化技术;SparseGPT算法;GPTQ算法

目录 大语言模型落地的成本、效率与效果 模型压缩技术 推理优化技术 SparseGPT算法 GPTQ算法 大语言模型落地的成本、效率与效果 模型压缩技术 模型压缩技术是大语言模型轻量化的关键。介绍了多种模型压缩方法,其中权重量化和模型稀疏化是两种主要的技术。 权重量化:权重…...

Facebook的开源项目解析:推动开发者社区的技术进步

Facebook&#xff0c;作为全球领先的社交平台之一&#xff0c;其在技术领域的创新不仅体现在产品功能的实现上&#xff0c;也积极推动开源社区的发展。开源项目已经成为Facebook技术战略的重要组成部分&#xff0c;通过开源&#xff0c;Facebook不仅加速了技术进步&#xff0c;…...

力扣--LCR 149.彩灯装饰记录I

题目 代码 /** Definition for a binary tree node. public class TreeNode { int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val val;this.left left;this.right ri…...

Rust SQLx CLI 同步迁移数据库

上文我们介绍了SQLx及SQLite&#xff0c;并介绍了如何使用代码同步迁移数据库。本文介绍Sqlx cli 命令行工具&#xff0c;介绍如何安装、使用&#xff0c;利用其提供的命令实现数据表同步迁移。Java生态中有flyway, sqlx cli 功能类似&#xff0c;利用命令行工具可以和其他语言…...

批量生成不同用户的pdf 文件(html样式)

技术 selenium thymeleaf itextpdf chromedriver 使用thymeleaf 将动态数据替换 使用selenium chromedriver 进行js &#xff0c;css等逻辑运算后渲染视图 使用itextpdf 将html 转为pdf 文件 html模板 <!DOCTYPE html> <html xmlns:th"http://www.thymeleaf…...

混淆零碎知识点

minifyEnabled true //混淆开关 zipAlignEnabled true // Zipalign优化 shrinkResources true // 移除无用的resource文件 &#xff08;必须要混淆开了之后才才可以设置为true&#xff09; proguard-rules.pro 为混淆文件 //整个文件保留 不被混淆 -keep class com.cn…...

排序算法2

排序算法1-CSDN博客 排序算法1中提及的是较为基础(暴力实现&#xff0c;复杂度较高)的排序算法&#xff0c;不适合于数据量较大的场景&#xff0c;比如序列长度达到1e5 接下来以蓝桥另一道题目来理解其它的排序算法 蓝桥3226 蓝桥账户中心 样例 5 1 5 9 3 7 4、快速排序 快速排…...

【Web开发基础学习——corsheaders 应用的理解】

Web开发基础学习系列文章目录 第一章 基础知识学习之corsheaders 应用的理解 文章目录 Web开发基础学习系列文章目录前言一、使用1.1 安装1.2 配置 二、功能总结 前言 corsheaders 是一个 Django 第三方应用&#xff0c;用于处理跨域资源共享 (CORS)。CORS 是一种机制&#x…...

Redis和MySQL之间如何进行数据同步

原因 为什么要进行Redis和MySQL的数据同步&#xff1f; 性能优化&#xff1a;MySQL是关系型数据库&#xff0c;数据读取和存储相对复杂&#xff1b;Redis是内存数据库&#xff0c;读写速度极快&#xff0c;将热点数据存在Redis&#xff0c;可以大大提高系统的访问速度。 数据…...

婚纱摄影网站应该如何做优化/搜索引擎营销的优缺点及案例

【C#】分享一个可灵活设置边框的Panel ---------------------------更新&#xff1a;2014-05-19--------------------------- 优化了一下逻辑&#xff0c;就是既然可以通过设置BorderSideNone来不显示边框&#xff0c;那么再设计一个BorderMode.None就显得多余&#xff0c;即Bo…...

泉州机票网站建设/网站运营推广选择乐云seo

路由与页面跳转传递数据函数封装 无论是app 还是 页面 或者小程序&#xff0c;在页面跳转时&#xff0c;很多时候都需要传递数据&#xff0c;方便二级页面进行使用。 uniapp官网中关于路由与页面跳转链接 官网提供的示例&#xff1a; 适用于简单的数据传递 //在起始页面跳转…...

功能类网站/项目优化seo

删除shape是1的维度, 不改变数组值 import numpya numpy.arange(10) print(a) >>> [0 1 2 3 4 5 6 7 8 9] b numpy.reshape(a, [1, 1, -1]) print(b) >>> [[[0 1 2 3 4 5 6 7 8 9]]] c numpy.squeeze(a) print(c) >>> [0 1 2 3 4 5 6 7 8 9]...

那种导航网站/百度手机极速版

其实是基本操作。。。。但我懒得每次都去想一遍&#xff0c;就记录一下。 问题是这样的比如我现在有一个矩阵是46*22的&#xff0c;但是我想要把它变成一维的1012*1。就很简单. [x,y]size(Bw); %确定矩阵维度 Brezeros(x*y,1); for i1:yfor j1:xBre((i-1)*xj)Bw(j,i); e…...

大良网站建设市场/软文广告100字

目录 一&#xff0c;写在前面 二&#xff0c;栈的定义 1&#xff0c;栈的定义 2&#xff0c;进栈出栈变化形式 三&#xff0c;栈的抽象数据类型 四&#xff0c;栈顺序存储结构及实现 1&#xff0c;栈的顺寻存储结构 2&#xff0c;栈的顺序存储结构——进栈操作 3&…...

哪个网站专业做安防/百度极速版推广

爬虫项目介绍 有一定的复杂性可以灵活调整项目的复杂性平衡语言/爬虫之间的比重通用爬虫,如baidu,google聚焦爬虫&#xff0c;从互联网获取结构化数据 把网页转换成数据 go语言的爬虫库/框架 henrylee2cn/pholcusgocrawlcollyhu17889/go_spider 不使用现成爬虫库/框架来写一个…...