这门课解决什么实际问题
嵌入式开发岗位的核心门槛不在于会写代码,而在于理解软硬件是如何协作的。市面上很多入门资料只讲语法,导致学员面对一块板子时依然无从下手。这套课程主要解决“如何从裸机起步,一步步构建可运行的系统”这一过程。它将重点放在底层驱动调试、外设控制以及系统移植上,填补了理论学习与工程落地之间的鸿沟。
课程涵盖了从基础外设驱动到操作系统移植的完整链路。这意味着你不仅能学会怎么写程序,更能理解程序在硬件上是如何跑起来的。对于想要进入物联网、工业自动化或智能硬件领域的从业者来说,这种全链路的视野是面试和实际工作中最看重的能力。
适合什么基础,建议先看哪几块
本课程适合具备 C 语言基础,且对计算机组成原理有初步认知的读者。如果你连指针和结构体还比较生疏,建议先补齐基础再入手,否则后续的中断处理和内存管理会让你感到吃力。适合的人群主要是电子类专业的在校生,或者是从事上位机开发、转行做嵌入式方向的程序员。
建议的学习顺序不要一上来就啃复杂的系统移植。先从基础的外设驱动入手,重点理解 GPIO、定时器、串口通信这些最常用的模块。这部分内容相对独立,容易产生正反馈。接着再进入中断系统和 DMA 的学习,这是理解实时性的关键。最后再挑战操作系统移植和驱动开发,这时候你已经有了足够的肌肉记忆来理解内核机制。
学完能独立做什么,资料如何配合练习
完成这套课程的学习并亲手跟随练习后,你应该能够独立完成基于常见嵌入式芯片的最小系统程序开发。具体包括:熟练配置和调试常用外设,能够阅读芯片数据手册并根据需求编写驱动,以及理解 Linux 或 RT-Thread 等主流嵌入式操作系统的启动流程和框架。
资料包中的课件和源码是核心辅助。课件部分用于梳理知识脉络,帮助你建立完整的概念图景,避免陷入细节而不知整体。源码部分则不能只看,必须动手敲一遍。建议在学习每一个章节时,对照源码进行复现,并在复现过程中加入自己的注释和理解。遇到报错时,尝试利用源码对照排查,这个过程就是真正的实战训练。只有通过不断的调试和纠错,这些知识才会真正转化为你的职业技能。
45 最新全套上官嵌入式,良许嵌入式
本课程隶属 会员库 · 其他机构课程,包含完整课程目录与配套资料,购买后联系客服获取下载方式;会员可直接免费下载。
课程目录
1.C语言/ 01. C语言零基础入门/ code/ (C语言代码编辑软件)notepadplusplus_v.8.1.2.exe (C语言笔记软件)Xmind8.7z (gcc工具包)x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z C语言课程思维导图笔记.xmind [100]-8.4 结构体和数组的结合.mp4 [101]-8.5. 结构体数组应用之选票系统.mp4 [102]-8.6 结构体指针变量引入.mp4 [103]-8.7 通过结构体指针来访问结构体内容.mp4 [104]-8.8 结构体指针应用01.mp4 [105]-8.9 结构体指针应用02之改写选票系统.mp4 [106]-8.10 结构体指针数组函数综合应用改写选票系统.mp4 [107]-8.11 结构体二级指针.mp4 [108]-8.12 联合体共用体概念引入.mp4 [109]-8.13 共用体注意数据覆盖问题.mp4 [10]-2.5 变量名标识符.mp4 [110]-8.14 共用体开发案例.mp4 [111]-8.15 枚举类型介绍.mp4 [112]-8.16 typedef关键字介绍.mp4 [113]-8.17 typedef和结构体案例.mp4 [114]-8.1. Linux的简介.mp4 [115]-8.2. 全网最快搭建Linux开发环境(ubuntu).mp4 [116]-8.3. 如何在Linux下编写代码和执行程序.mp4 [117]-8.4. Linux常用初级指令介绍和使用.mp4 [118]-8.5. Linux虚拟机和windows间的文件传输方式.mp4 [119]-8.6. VMware虚拟接网络连接的三种方式.mp4 [11]-2.6 计算机的数据类型.mp4 [120]-9.1 链表是个好东西.mp4 [121]-9.2 链表和数组区别及实现.mp4 [122]-9.3 链表静态添加和动态遍历.mp4 [123]-9.4 链表遍历中的point=point-next.mp4 [124]-9.5 统计链表节点个数及链表查找.mp4 [125]-9.6 链表从指定节点后方插入新节点.mp4 [126]-9.7 链表从指定节点前方插入新节点.mp4 [127]-9.8 链表删除指定节点.mp4 [128]-9.9 链表动态创建之头插法.mp4 [129]-9.10 头插法优化补充.mp4 [12]-2.7 printf打印的用法.mp4 [130]-9.11 尾插法创建链表.mp4 [131]-1.项目演示.mp4 [132]-2.基础要求.mp4 [133]-3.为什么需要ncurse.mp4 [134]-4.curse输入输出.mp4 [135]-5.ncurse上下左右键获取.mp4 [136]-6.地图规划.mp4 [137]-7.地图实现一.mp4 [138]-8.贪吃蛇地图实现结束.mp4 [139]-9.贪吃蛇地图优化及算法说明.mp4 [13]-2.8 printf小练习.mp4 [140]-10.显示贪吃蛇身子的一个节点.mp4 [141]-11.显示贪吃蛇完整身子.mp4 [142]-12.显示贪吃蛇完整身子改进.mp4 [143]-13.贪吃蛇向右移动.mp4 [144]-14.贪吃蛇不想活了撞墙找死.mp4 [145]-15.贪吃蛇脱缰向右自行游走.mp4 [146]-16.贪吃蛇方向移动和刷新界面一起实现面临的问题.mp4 [147]-17.Linux线程概念引入及编程实现.mp4 [148]-18.使用线程解决16节中提到问题.mp4 [149]-19.实现贪吃蛇四方向的疯烧走位.mp4 [14]-2.9 scanf输入的用法.mp4 [150]-20.绝对值方式解决不合理走位一.mp4 [151]-21.绝对值方式解决不合理走位二.mp4 [152]-22.贪吃蛇吃饭咯.mp4 [153]-23.贪吃蛇食物位置随机.mp4 [154]-24.贪吃蛇撞墙找死和想不开咬死自己来结束游戏的代码优化.mp4 [15]-2.10 scanf混合输入的那些坑.mp4 [16]-2.11 其它输入输出的方式.mp4 [17]-2.12 输入输出练习题.mp4 [18]-2.13 布置简陋土逼密码学和计算器小作业.mp4 [19]-3.1 流程控制之if语句.mp4 [1]-1.1 揭秘之什么是程序.mp4 [20]-3.2 if控制经典案例代数法交换值.mp4 [21]-3.3 逻辑判断与或非.mp4 [22]-3.4 ifelse编程练习.mp4 [23]-3.5 选择判断的机器人案例.mp4 [24]-3.6 列表选择switchcase.mp4 [25]-3.7 switch练习学生成绩等级划分.mp4 [26]-3.8 选择练习题之根据路程算折扣.mp4 [27]-3.9 作业布置.mp4 [28]-3.10 while循环爱你一万遍.mp4 [29]-3.11 while循环计算1到100所有数据之和.mp4 [2]-1.2.认知延伸之程序和数据算法的关系.mp4 [30]-3.12 doWhile的小微妙自行体会.mp4 [31]-3.13 while的表达式及for循环等价引入.mp4 [32]-3.14 关于for循环的见怪不怪.mp4 [33]-3.15 循环干涉之break和continue编码分析.mp4 [34]-3.16 循环的嵌套输出某个规律的数列.mp4 [35]-3.17 作业布置.mp4 [36]-4.1 数组的引入及基本用法.mp4 [37]-4.2 数组计算大小和各种初始化.mp4 [38]-4.3 数组应用编程练习.mp4 [39]-4.4 数组编程练习之冒泡排序法.mp4 [3]-1.3 生产一个程序的过程是什么样.mp4 [40]-4.5 数组编程练习之简单选择排序法.mp4 [41]-4.6 二维数组.mp4 [42]-4.7 二维数组见怪不怪的初始化.mp4 [43]-4.8 二维数组应用之找最大值及对应下标.mp4 [44]-5.1 为什么需要用函数.mp4 [45]-5.2 函数三要素.mp4 [46]-5.3 函数的封装和调用.mp4 [47]-5.4 函数的封装和调用2.mp4 [48]-5.5 形参实参区别.mp4 [49]-5.6 编程案例函数封装获取两个数的大数.mp4 [4]-1.4 偷偷学的计算机语言是什么.mp4 [50]-5.7 关于函数的一些小总结.mp4 [51]-5.8 函数嵌套及编码实战.mp4 [52]-5.9 递归函数编码实战.mp4 [53]-5.10 求阶乘案例.mp4 [54]-5.11 数组和函数开发初见.mp4 [55]-5.12 数组传参中关于形式参数的秘密.mp4 [56]-5.13 数组实参很有意思的问题启发.mp4 [57]-5.14 数组实战之计算不同班级学生的平均分.mp4 [58]-5.15 二维数组和函数的概念和实战.mp4 [59]-5.16 外部变量和全局变量.mp4 [5]-1.5 线上课程学习方法适用于所有编程类课程.mp4 [60]-5.17 全局变量实战开发.mp4 [61]-5.18 函数完结和作业布置.mp4 [62]-6.1. 指针的引入.mp4 [63]-6.2 指针变量的引入.mp4 [64]-6.3 指针变量为什么要求类型.mp4 [65]-6.4 为什么要用指针之场景一.mp4 [66]-6.5 为什么要用指针之场景二.mp4 [67]-6.6 指针回顾和作业布置.mp4 [68]-6.7 定义一个指针变量指向数组.mp4 [69]-6.8 指针偏移遍历数组.mp4 [6]-2.1 C语言常用开发环境有哪些.mp4 [70]-6.9 指针偏移的补充,记得回到数组首地址.mp4 [71]-6.10 指针和数组名的见怪不怪,重要面试.mp4 [72]-6.11 练习函数指针数组结合.mp4 [73]-6.12 练习之数组翻转.mp4 [74]-6.13 二维数组的地址认知,很猛.mp4 [75]-6.14 认知继续.mp4 [76]-6.15 通过编程验证认知.mp4 [77]-6.16 二维数组的地址写法应用,见怪不怪了.mp4 [78]-6.17 数组指针.mp4 [79]-6.18 数组指针和二维数组的配合应用.mp4 [7]-2.2 C开发环境安装.mp4 [80]-6.19 函数指针认知.mp4 [81]-6.20 函数指针编程实战-回调函数.mp4 [82]-6.21. 指针数组地概念和实战练习.mp4 [83]-6.22指针函数的概念和实战.mp4 [84]-6.23 二级指针认知.mp4 [85]-6.24 为什么要用二级指针的实战.mp4 [86]-6.25 二级指针和二维数组的避坑指南.mp4 [87]-6.26 指针完结.mp4 [88]-7.1 字符串引入和注意事项.mp4 [89]-7.2 字符串的内存存放方式及结束标志.mp4 [8]-2.3 C程序的基础框架.mp4 [90]-7.3 sizeof和strlen区别很重要.mp4 [91]-7.4 malloc动态开辟内存空间.mp4 [92]-7.5 字符常用操作函数第一部分.mp4 [93]-7.6 自己实现字符串拷贝函数.mp4 [94]-7.7 C语言断言函数assert.mp4 [95]-7.8 字符串拼接strcat使用及实现.mp4 [96]-7.9 字符串比较strcmp使用及实现.mp4 [97]-8.1. 结构体引入.mp4 [98]-8.2. 定义结构体和使用变量.mp4 [99]-8.3小应用.mp4 [9]-2.4 基础认知什么是变量.mp4 10.智能家居项目/ 787_1.智能家居项目运行效果展示.mp4 788_2.智能家居功能细节拆分.mp4 789_3.智能家居模型搭建.mp4 789_4. 设计模式的概念引入.mp4 790_5.C语言面向对象引入类和对象的概念.mp4 791_6.C结构体新玩法.mp4 791_7.工厂模式概念引入.mp4 792_8.工厂模式的实现.mp4 793_9.工厂模式使用及功能验证.mp4 794_10.智能家居项目框架设计.mp4 795_11.智能家居架构代码文件工程建立.mp4 796_12.主流程设计和浴室灯框架编写.mp4 797_13.浴室灯代码实现和测试.mp4 797_14.浴室灯改错全过程及功能验证.mp4 798_15.二楼灯功能实现.mp4 799_16.sourceInsight乱码问题注意.mp4 800_17.继电器组四盏灯全部实现及功能验证.mp4 801_18.添加火灾检测模块.mp4 802_19.添加声音识别模块的串口读取功能.mp4 803_20.串口代码调错全过程(坎坷确实大家常遇见的难题).mp4 804_21.添加Socket服务器功能.mp4 805_22.主程序代码初步编写,实现语音和网络线程.mp4 806_23.主程序编译运行,测试网络功能.mp4 807_24.测试串口功能.mp4 808_25.摄像头模块安装.mp4 809_26.树莓派mjpg-streamer实现监控功能调试.mp4 809_27.人脸识别方案.mp4 810_28.OSI网络模型记忆点.mp4 811_29.三次握手四次挥手面试理解和记忆.mp4 812_30.Socket TCP HTTP之间的区别.mp4 812_31.HTTP协议相关名词概念扫盲.mp4 812_32.HTTPS协议及密码学基础名字扫盲.mp4 812_33.初见Libcurl库.mp4 813_34.libcurl等第三方库的通用编译方法.mp4 814_35.调用libcurl编程访问百度主页.mp4 815_36.libcurl函数库常用字段解读并设置数据读取回调函数.mp4 815_37.人工智能OCR识别平台翔云等介绍.mp4 815_38.人脸识别接口购买.mp4 815_39.编程实现人脸识别第一次.mp4 816_40.编译openssl支持libcurl的https访问.mp4 817_41.编程实现人脸识别第二次加入图片base64编码.mp4 818_42.人脸识别成功并封装Base64编码函数.mp4 819_6分钟识别车牌.mp4 11.安卓APP之Java基础/ 820_1.嵌入式为什么学习java.mp4 821_2.Java安卓开发环境搭建并运行HelloWorld.mp4 822_3.JAVASE EE ME的概念和区别扯淡.mp4 823_4.JRE JDK扯淡继续.mp4 824_5.通过java书本来了解java学习的大致内容.mp4 825_6.Java的基本数据类型和C基本一样.mp4 826_7.选择控制流程和C语言一毛一样.mp4 827_8.循环控制和C语言一毛一样.mp4 828_9.JAVA数组和C基本一样,稍微区别.mp4 829_10.Java方法就是C的函数,稍微区别.mp4 830_11.Java找最高分最低分和计算器案例实现.mp4 831_12.数组规范一个小补充.mp4 832_13.Java的输入类Scanner.mp4 833_14.java封装之封装类及类的使用.mp4 834_15.java封装之访问修饰符.mp4 835_16.java封装之访问修饰符封装属性及方法.mp4 836_17.java封装之构造方法.mp4 837_18.java封装之this关键字.mp4 838_19.java封装之static关键字.mp4 839_20.java封装之包.mp4 840_21.java继承的概念及用法.mp4 841_22.java继承之super关键字.mp4 842_23.java继承之私有权限.mp4 843_24.java继承之方法重写.mp4 844_25.java继承之object类.mp4 845_26.java继承之综合小练习.mp4 846_27.java继承之简单工厂模式.mp4 847_28.java抽象方法和抽象类.mp4 848_29.java抽象类应用模板方法模式.mp4 850_31.java内部类之成员内部类.mp4 851_32.java内部类之匿名内部类.mp4 852_33.多态的概念和案例实现.mp4 853_34.多态中上下转型要注意的点.mp4 854_35.多态应用案例之打印机.mp4 855_36.异常的概念及分类.mp4 856_37.异常的处理.mp4 857_38.异常抛出及自定义异常.mp4 858_39.Java高级之泛型概念引入.mp4 859_40.泛型可以设置多个类型参数.mp4 860_41.泛型继承和泛型接口实现.mp4 861_42.限制泛型可用类型.mp4 862_43.泛型通配的方式.mp4 863_44.泛型方法.mp4 864_45.泛型方法限制泛型可用类型.mp4 12.安卓app入门及应用/ 06. Android代码/ .metadata/ Activity生命周期/ JavaSocket客户端/ JavaSocket服务端/ android/ docs/ 安卓Socket客户端/ 安卓Socket客户端接收并刷新控件/ 安卓基础控件/ 安卓程序之布局和页面的关系/ 按键响应第一种方式/ 按键响应第三种方式-匿名内部类/ 按键响应第二种方式-自定义类/ 按键响应第四种方式-Activity/ 按键响应第四种方式-自定义类/ 显示一个美女/ 显示两个美女/ 智能家居Final/ 智能家居界面/ 百度/ 相对布局控件属性测试/ 第一个安卓程序/ 线性布局/ 线程刷新控件遇到的问题/ 页面自动跳转/ 页面跳转/ 页面跳转传参/ 页面跳转传参方式一/ 页面跳转传参方式二/ AndroidLessons源码.rar eclipse.lnk 安卓开发笔记_截至到安卓的第37节.docx 865_1.安卓工程构建及第一个安卓程序运行.mp4 866_2.安卓工程结构介绍.mp4 867_3.安卓app启动过程简述.mp4 868_4.安卓布局分类及布局和页面的关系.mp4 869_5.安卓app开发显示一个美女.mp4 870_6.安卓app开发显示两个美女.mp4 871_7.相对布局RelativeLayout常用属性.mp4 872_8.基础控件按键文本框输入框制作登录界面.mp4 873_9.Margin和Padding.mp4 874_10.相对布局综合小演练-智能家居刷卡界面.mp4 875_11.按键快速美化的小技巧.mp4 876_12.线性布局介绍.mp4 877_13.线性布局weight属性.mp4 878_14.线性布局微调参数gravity.mp4 879_15.线性布局divider.mp4 880_16.按键响应第一种方式onClick属性.mp4 881_17.按键响应第一中方式,xml中onclick属性.mp4 882_18.按键响应第二种方式,接口类.mp4 883_19.按键响应的第三种方式,匿名内部类.mp4 884_20.按键响应第四种方式,Activity.mp4 885_21.如何添加一个页面(activity).mp4 886_22.如何跳转页面.mp4 887_23.页面跳转传参方式一(剩余代码自己补充).mp4 888_24.页面跳转传参方式二.mp4 889_25.安卓线程实现页面的自动跳转.mp4 890_26.Activity(页面)的生命周期.mp4 891_27.Java高级补充之Socket服务端.mp4 892_28.Java高级之Socket服务端支持多连接.mp4 893_29.Java高级之Socket客户端.mp4 894_30.Java高级之Socket客户端支持发送和接收.mp4 895_31.Android的Socket客户端开发.mp4 896_32.Android的Socket客户端优化.mp4 897_33.Android非UI线程修改控件程序崩溃的问题.mp4 898_34.倒计时软件.mp4 899_35.Android网络接收数据并刷新界面.mp4 900_36.WebView控件之自制浏览器APP.mp4 901_37.第三阶段智能家居APP页面开发.mp4 13.WemosD1垃圾桶/ 902_1.基于Wemos的项目演示和项目意义.mp4 903_3.Wemos玩转蜂鸣器,叫你一声敢响吗?.mp4 904_4.Wemos通过串口告诉电脑陈立臣很帅.mp4 905_5.编程让Wemos见人说人话,见鬼说鬼话.mp4 906_6.通过串口控制蜂鸣器的响与不响.mp4 907_7.垃圾桶硬件整体连接过程.mp4 908_8.详细接线图,接错了是小狗啊.mp4 909_9.Wemos控制SG90电机调试开关盖效果.mp4 910_10.Wemos串口控制垃圾桶开关盖.mp4 911_11.超声波的测距原理.mp4 912_12.根据原理实现超声波测距的代码.mp4 913_14.超声波测距代码中为什么要除以58.mp4 914_15.项目综合及效果验证.mp4 915_16.项目总结.mp4 14.WemosD1小车/ 916_1.wifi避障小车效果一睹为快.mp4 917_3.Wemos玩转蜂鸣器,叫你一声敢响吗?.mp4 918_4.Wemos通过串口告诉电脑陈立臣很帅.mp4 919_5.编程让Wemos见人说人话,见鬼说鬼话.mp4 920_6.通过串口控制蜂鸣器的响与不响.mp4 921_7.Wemos接入wifi靓仔迅捷开发啊.mp4 922_8.牛逼吊炸天的CS模式也就这样.mp4 923_9.编程Wemos服务器,通过手机tcp工具远程网络控制蜂.mp4 924_10.超声波的测距原理.mp4 925_11.根据原理实现超声波测距的代码.mp4 926_12.超声波测距代码验证,小于10厘米蜂鸣器响起.mp4 927_13.超声波测距代码中为什么要除以58.mp4 928_14.避障小车改造过程.mp4 929_15.小车接线详解.mp4 930_16.实现小车前后左右的电机驱动功能.mp4 931_17.项目综合一串口控制小车前后左右.mp4 932_18.项目综合二wifi控制小车前后左右.mp4 933_19.吊炸酷炫安卓环境搭建和基本代码修改.mp4 934_20.项目综合三手机APP控制小车完结.mp4 935_21.项目综合四app控制小车加入避障功能.mp4 936_22.嵌入式工程师从智能小车开始起飞.mp4 937_23小车使用电池供电,实现脱缰的野狗.mp4 15.RGBWemosD1/ 0. RGB体验课/ 代码/ AI智能离线语音.rar AiThinker Serial Tool V1.2.3.exe CH340G_drvier.ZIP arduino-1.6.5-ESP8266-2.0.rar typora-setup-x64.exe 语音红外控制系统--嵌入式体验课.pdf 672_选修-RGBWemosD1-01. 项目运行效果_1080p.mp4 673_选修-RGBWemosD1-02. 项目配套赠送硬件一览学浪版_1080p.mp4 674_选修-RGBWemosD1-2. 配套赠送硬件说明_1080p.mp4 675_选修-RGBWemosD1-03. 单片机就像听话的朋友,接受人类的控制_1080p.mp4 676_选修-RGBWemosD1-03. 单片机就像听话的朋友,接受人类的控制学浪版_1080p.mp4 677_选修-RGBWemosD1-04. 开发环境安装及注意三点事项_1080p.mp4 678_选修-RGBWemosD1-05. 蜂鸣器控制原理_1080p.mp4 679_选修-RGBWemosD1-06. 编程实现蜂鸣器滴滴响_1080p.mp4 680_选修-RGBWemosD1-07. 串口简介_1080p.mp4 681_选修-RGBWemosD1-08. 编程实现电脑控制蜂鸣器_1080p.mp4 682_选修-RGBWemosD1-09. 语音模块配置固件_1080p.mp4 683_选修-RGBWemosD1-10. 语音模块固件烧写并控制蜂鸣器_1080p.mp4 684_选修-RGBWemosD1-11. PERFECT PG社区的RGB手写板介绍_1080p.mp4 685_选修-RGBWemosD1-12.电脑控制RGB手写板,完成红外码破解_1080p.mp4 686_选修-RGBWemosD1-13. 编程轻微地实现以下语音控制RGB手写板_1080p.mp4 687_选修-RGBWemosD1-14. 针对上节课的复盘和接线变化梳理补充_1080p.mp4 688_选修-RGBWemosD1-15. WemosD1代码完整遥控码添加_1080p.mp4 689_选修-RGBWemosD1-16. 优化后的代码_1080p.mp4 690_选修-RGBWemosD1-17.完善语音识别词条,制作最终固件_1080p.mp4 691_选修-RGBWemosD1-02. 项目配套赠送硬件一览学浪版_1080p.mp4 692_选修-RGBWemosD1-2. 配套赠送硬件说明_1080p.mp4 693_选修-RGBWemosD1-03. 单片机就像听话的朋友,接受人类的控制_1080p.mp4 694_选修-RGBWemosD1-03. 单片机就像听话的朋友,接受人类的控制学浪版_1080p.mp4 695_选修-RGBWemosD1-04. 开发环境安装及注意三点事项_1080p.mp4 696_选修-RGBWemosD1-05. 蜂鸣器控制原理_1080p.mp4 697_选修-RGBWemosD1-06. 编程实现蜂鸣器滴滴响_1080p.mp4 698_选修-RGBWemosD1-07. 串口简介_1080p.mp4 699_选修-RGBWemosD1-08. 编程实现电脑控制蜂鸣器_1080p.mp4 700_选修-RGBWemosD1-09. 语音模块配置固件_1080p.mp4 701_选修-RGBWemosD1-10. 语音模块固件烧写并控制蜂鸣器_1080p.mp4 702_选修-RGBWemosD1-11. PERFECT PG社区的RGB手写板介绍_1080p.mp4 703_选修-RGBWemosD1-12.电脑控制RGB手写板,完成红外码破解_1080p.mp4 … 共 1453 条






