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

从零基础到能独立设计单片机产品,一般需要经历哪些学习阶段?

相信很多人,内心都有“钢铁侠”的幻想,成为能写程序,能设计硬件,能设计结构,能焊接的全能型人才。

上次徐工问我,如果你财富自由了,想去做啥?

我说出来,可能大家都不信,我说我应该会去研究无人机和机器人,至少目前来说,挺感兴趣的,但作为现实混饭吃,以我的条件,这个方向不是很好的选择。

ok,废话不多说,之前有人问过我,从零基础到大佬级别,要经历哪些学校阶段,下面给大家详细罗列下。

一、基础电子知识

如果你计划从事嵌入式底层驱动开发,掌握一定的基础电子知识是非常必要的。虽然你的主要工作集中在软件开发,但单片机本质上是嵌入式系统,软件与硬件的交互无处不在。

下面我会详细罗列出要掌握哪些知识点,以及需要掌握到啥程度。

1. 电路基础

  • 知识点

    • 电压、电流、电阻的基本概念。

    • 欧姆定律(V=IR),串联与并联电路的特性。

    • 功率计算(P=VI),电路中的功耗分析。

    • 电容、电感的基本作用(如储能、滤波)。

  • 掌握程度

    • 能够看懂简单的电路图,识别电阻、电容、电感等元件。

    • 用欧姆定律计算电路参数,例如某个电阻上的电压降。

    • 理解功率消耗,知道为什么电路会发热或需要散热。

  • 重要性:单片机的GPIO配置、负载驱动(如LED)都依赖电路基础。例如,你需要判断某个引脚是否需要外接电阻来限制电流。

2. 模拟电路基础

  • 知识点

    • 电容和电感在滤波、去耦中的应用。

    • 二极管的单向导通特性,三极管的开关与放大功能。

    • MOS管的开关功能。

    • 运算放大器(运放)在信号放大和比较中的作用。

  • 掌握程度

    • 知道为什么单片机电源引脚需要接去耦电容。

    • 理解二极管在保护电路中的用途(如防止电源反接)。

    • 能在GPIO控制大电流负载时,使用三极管、MOS设计简单的驱动电路。

    • 了解运放在ADC信号调理中的作用。

  • 重要性:单片机常与模拟信号交互(如传感器输入),理解模拟电路能帮你设计合适的硬件接口。

3. 数字电路基础

  • 知识点

    • 逻辑门(与、或、非等)的功能和真值表。

    • 触发器、锁存器的基本概念及用途。

    • 时钟信号和时序逻辑的重要性。

  • 掌握程度

    • 能看懂简单的数字电路图,理解逻辑门的工作原理。

    • 知道触发器如何存储数据,以及时钟信号如何驱动单片机内部模块。

    • 理解中断、定时器等功能的数字逻辑基础。

  • 重要性:单片机是数字系统,通信协议(如SPI、I2C)和外设控制都基于数字电路逻辑。

4. 信号与系统

  • 知识点

    • 模拟信号与数字信号的区别。

    • ADC(模数转换)的采样、量化原理。

    • PWM(脉宽调制)的生成与应用。

    • 基本的滤波概念(如低通滤波)。

  • 掌握程度

    • 理解ADC的采样率、分辨率等参数,正确配置ADC。

    • 知道如何用PWM控制电机或LED亮度。

    • 能在软件中实现简单滤波,处理噪声干扰。

  • 重要性:ADC和PWM是单片机常用外设,理解信号处理能优化数据采集和控制效果。

5. 电源管理

  • 知识点

    • 直流电源与交流电源的区别。

    • 稳压电路(线性稳压、开关稳压)的基本原理。

    • 低功耗设计的基本概念。

  • 掌握程度

    • 知道单片机的工作电压范围,理解电源不稳定时的影响。

    • 了解去耦电容的布局方法。

    • 能在软件中实现睡眠模式以降低功耗。

  • 重要性:电源是系统的核心,电压不稳可能导致单片机复位或死机。

6. 接口电路

  • 知识点

    • 常见通信接口:UART、SPI、I2C等。

    • 电平标准(如TTL、CMOS)和电平转换。

    • GPIO的电气特性(如驱动能力)。

  • 掌握程度

    • 理解不同接口的特点和应用场景。

    • 知道如何设计电平转换电路(如3.3V与5V设备通信)。

    • 避免因GPIO驱动能力不足导致的硬件损坏。

  • 重要性:单片机通过接口与外部设备通信,理解接口电路能确保通信稳定。

7. 传感器和执行器

  • 知识点

    • 常见传感器(如温度、光敏)的输出类型。

    • 执行器(如继电器、电机)的控制方式。

  • 掌握程度

    • 知道如何将传感器接入单片机并读取数据。

    • 能用PWM或GPIO控制执行器。

    • 了解其电气需求(如电压、电流)。

  • 重要性:单片机项目常涉及传感器数据采集和执行器控制,理解其原理能提高开发效率。

8. EMC/EMI基础

  • 知识点

    • 电磁兼容性(EMC)和电磁干扰(EMI)的概念。

    • 干扰源及抑制方法(如滤波、屏蔽)。

  • 掌握程度

    • 了解EMI对单片机的影响(如通信错误)。

    • 知道基本的抗干扰设计(如软件滤波)。

  • 重要性:实际环境中,干扰无处不在,初步理解EMC/EMI能提升系统可靠性。

9. PCB设计基础

前期可以先不用学习,等软件达到独立设计再考虑。

  • 知识点

    • PCB的基本结构和布线原则。

    • 信号完整性和电源完整性。

  • 掌握程度

    • 能看懂简单PCB图,理解元件连接关系。

    • 知道去耦电容和时钟线的布局要点。

  • 重要性:理解PCB设计能帮助你与硬件工程师协作,或快速定位硬件问题。

10.掌握程度总结

  • 初级:能看懂电路图,知道元器件的基本功能。

  • 中级:能分析简单电路,理解硬件对软件的影响。

  • 高级:能设计简单接口电路并调试。

对于单片机软件开发,建议至少达到中级水平。这意味着你能理解硬件行为,并在软件设计中加以考虑。

例如,配置ADC时知道如何选择采样率;在通信时考虑硬件的传输速率和错误率。

11.为什么需要这些知识?

单片机软件开发不仅仅是写代码,还包括与硬件的协同工作:

  • 代码优化:理解硬件特性能让你写出更高效的代码。

  • 调试效率:遇到问题时,能快速判断是软件还是硬件原因。

  • 团队协作:与硬件工程师沟通更顺畅,防止相互扯皮。

12.学习建议

  1. 理论学习:入门部分可以看我们那套硬件基础教程。

  1. 实践练习:有动手能力的,用面包板和单片机开发板搭建电路(如LED控制、传感器读取),边做边学。

  2. 工具使用:学会用万用表和示波器测量信号,培养调试能力。

  3. 项目驱动:在单片机项目中关注硬件部分,查阅原理图和数据手册,加深理解。

二、单片机基础

单片机,全称“单片微型计算机”,听起来有点高大上,但其实就是个微缩版的电脑,专干控制设备的活儿。你手机里有CPU负责算,内存负责存,接口负责聊,单片机也差不多,只不过它更像个勤劳的工人,负责让洗衣机转圈、空调吹风,甚至让汽车胎压报警。

市面上常见的单片机有8051、PY、GD、STM32、NXP等等。型号多,不过用熟了也大同小异。

你可以把它们想象成不同品牌的手机,有的适合拍照,有的适合打游戏。选一个适合你项目的就好,入门的话,8051是不错的选择。

想做单片机软件开发,以下是你必须掌握的核心知识点,以及得掌握到什么程度。别慌,我会用大白话解释,还会拿产品举例说明。

1. 单片机的内部结构
  • 知识点:CPU、存储器(RAM、ROM/Flash)、I/O接口、中断系统、定时器/计数器。

  • 掌握程度:知道每个模块干嘛用的,基本原理是什么。

  • 大白话:CPU是“思考核心”,存储器是“记忆库”,I/O是“手脚”,中断是“紧急呼叫器”,定时器是“闹钟”。就像你得知道车里有发动机和刹车,才能开车上路。

2. 时钟与时序
  • 知识点:时钟源、时钟频率、指令周期。

  • 掌握程度:明白时钟快慢怎么影响运行速度,能算算指令执行多久。

  • 大白话:时钟频率就像车的转速,转得快跑得猛,但耗油也多。单片机也一样,时钟高了处理快,功耗也高。

3. 存储器组织
  • 知识点:程序存储器(Flash)、数据存储器(RAM)、EEPROM(可选)。

  • 掌握程度:清楚代码放Flash,变量用RAM,EEPROM存持久数据。

  • 大白话:Flash是“教科书”,RAM是“草稿纸”,EEPROM是“日记本”。丢了草稿没事,丢了日记可就惨了。

4. I/O口与外设
  • 知识点:GPIO、UART、SPI、I2C、ADC、PWM等。

  • 掌握程度:知道这些外设是干啥的,啥时候用。

  • 大白话:GPIO是“万能插座”,UART是“电话线”,SPI/I2C是“快递员”,ADC是“听诊器”,PWM是“调光灯”。开发时,这些是你跟外界沟通的工具。

5. 中断系统
  • 知识点:中断源、中断优先级、中断服务程序(ISR)。

  • 掌握程度:搞懂中断怎么打断程序,怎么写ISR处理。

  • 大白话:中断就像电话铃,你在写代码,电话响了,得先接(处理中断),然后再接着写。

6. 功耗管理
  • 知识点:睡眠模式、空闲模式、唤醒机制。

  • 掌握程度:能通过代码让单片机省电。

  • 大白话:就像你不用电脑时让它睡一觉,单片机也得学会偷懒,尤其在电池设备里,省电就是续命。

7.掌握到什么程度?
  • 初级:能看懂数据手册,知道模块是啥。

  • 中级:能配置外设,写中断程序,完成项目开发。

  • 高级:能优化代码,提升性能,降低功耗。

做软件开发,中级水平是底线。

三、编程语言

编程语言是与单片机“对话”的工具,掌握它就像学会了跟这个“微型大脑”聊天一样。

如果你想从事单片机软件开发,得有一套扎实的知识储备。

常见的语言有C语言和汇编语言。C语言比较友好,像是在用英语聊天;汇编语言更底层,像是在敲摩尔斯电码,效率高但费脑子。

对于刚入门的同学,C语言是最好的选择,这个一般是和单片机一起学的。

今天,我就用大白话带你梳理一下需要掌握哪些知识点,以及每个点要学到什么程度。

1. 基本语法和数据类型
  • 需要掌握的内容:变量、常量、数据类型(比如int、char、float)、运算符(算术、逻辑、位运算)。

  • 掌握程度:必须熟练掌握,能灵活运用。

2 控制结构
  • 需要掌握的内容:条件语句(if-else、switch)、循环语句(for、while、do-while)。

  • 掌握程度:要精通,能根据需求挑合适的结构。

  • 为什么重要:控制结构是程序的“逻辑骨架”,决定你的程序怎么“思考”和“干活”。

if-else像是问单片机:“你要不要干这个?”;循环是命令它:“重复干这个,直到我满意。”

3. 函数和模块化编程
  • 需要掌握的内容:函数的定义、调用、参数传递,还有模块化编程的思路。

  • 掌握程度:要熟练掌握,能设计清晰的函数结构。

  • 为什么重要:函数让代码整洁,就像搭乐高,一个个小块拼出大作品,维护起来也方便。

函数就是“干活的小工”,把任务分给它们,程序就井井有条。

4. 调试技巧
  • 需要掌握的内容:调试工具(比如JTAG、SWD)、断点设置、变量监视、串口打印。

  • 掌握程度:要熟练使用,能快速定位和解决问题。

  • 为什么重要:调试是程序员的“显微镜”,能帮你揪出代码里的“小虫子”。

不会调试的程序员,就像盲人摸象,永远找不到问题在哪。

5.掌握程度总览
  • 初级:能写出基本程序,比如让单片机跑个流水灯,数码管显示时间等等。

  • 中级:能独立完成项目,搞定中断和外设。

  • 高级:能优化代码,提升性能,玩转底层。

如果你想从事单片机软件开发,至少得达到中级水平。

记住,代码是敲出来的,不是背出来的,多动手,多调试。

四、实践项目:从“玩具”到“产品”

我们学习前面的基础,就是为做项目铺垫的,如果不知道做什么,可以看看市面上量产的产品,给你点实在的启发。

示例1:智能宠物喂食器

  • 场景:自动为宠物定时喂食,支持远程控制和份量调节。

  • 单片机作用:控制喂食电机,处理用户指令,与手机APP通信。

  • 应用细节

    • GPIO:控制喂食电机的开关和转动方向。

    • 定时器:设置喂食时间,定时触发喂食动作。

    • UART:通过Wi-Fi或蓝牙模块与手机连接,实现远程操作。

    • ADC:监测食物储存量的传感器信号,提醒用户补充。

    • PWM:调节电机速度,控制每次喂食的份量。

    • 中断:响应用户手动喂食或暂停操作。

示例2:汽车胎压监测系统(TPMS)

  • 场景:实时查轮胎气压,漏气就报警。

  • 单片机干啥:采集传感器数据,无线传到车内。

  • 知识点咋用

    • ADC:把气压传感器的信号测出来。

    • SPI/I2C:跟无线模块传数据。

    • 中断:定时醒来干活,其他时间睡觉。

    • 时钟与时序:控制采样和传输的节奏。

    • 存储器:Flash存校准参数,RAM存实时数据。

示例3:智能电表

  • 场景:自动抄表,告诉你用了多少电。

  • 单片机干啥:测电流电压,算电量,上传数据。

  • 知识点咋用

    • ADC:采样电流电压。

    • 定时器:每隔几秒算一次电量。

    • UART:跟通信模块(比如4G模块)聊天。

    • EEPROM:存电量数据,断电也不丢。

    • 功耗管理:没事就睡,省电又环保。

小建议:从小项目开始,逐步加难度。每个项目都要总结,遇到问题多自己解决,每个BUG都是成长的机会。

工作几年,做过几个项目以后,基本能独立开发项目了,但是有个问题,就是代码写得比较烂。

我做研发的前6年,都是处于这个状态,平台受限,接触不到好项目,一直没提升。

典型的就是代码架构不好,导致维护比较麻烦,体现在怕改需求,或者改BUG,程序也不通用,换一个项目几乎都要重构代码,开发效率很低。

不出意外,大多数工程师会在这个阶段卡很久,短则2-3年,长则5-10年都有可能。

五、成为软件架构师

能熬到这里,终于到高端局了。

架构师就是那个能把一堆乱糟糟的代码和硬件需求,梳理成一个井然有序、跑得贼溜的产品。

下面是我整理了单片机软件架构师必须啃下来的知识点。

1. 需求分析与系统规划
  • 要学啥:搞清楚项目到底要干嘛,把需求拆成软件模块和功能点。

  • 掌握到啥程度:能跟客户或团队聊明白需求,然后画出系统的“蓝图”,规划好每个模块咋干。

  • 为啥重要:需求是软件的“剧本”,剧本错了,再牛的代码也是白忙活。

就像盖房子,你得先知道要盖几层楼、几个房间,不然建到一半发现没厕所,那不是完犊子了?

2. 软件架构设计
  • 要学啥:设计软件的“骨架”,包括分层(驱动层、应用层、中间件)、模块化、接口定义。

  • 掌握到啥程度:能设计出清晰的架构,让每个模块各干各的,改起来不抓狂。

  • 为啥重要:后面维护代码你就懂了。

3. 硬件抽象与驱动开发
  • 要学啥:写好硬件驱动,比如GPIO、UART、SPI、I2C、ADC、PWM。

  • 掌握到啥程度:能写出通用的驱动代码,让上层应用不用管硬件细节。

  • 为啥重要:驱动写得好,换个单片机型号,代码改动少,省心省力。

4. 功耗优化
  • 要学啥:用软件控制单片机功耗,比如睡眠模式、时钟管理。

  • 掌握到啥程度:能在代码里搞定低功耗策略,让电池设备多撑几天。

  • 为啥重要:电池设备没电就歇菜,功耗优化是“续航”的救命稻草。

5. 调试与测试
  • 要学啥:玩转调试工具(JTAG、SWD、串口打印),写好单元测试和系统测试。

  • 掌握到啥程度:能快速定位bug,写出自动化测试脚本。

  • 为啥重要:不会调试,bug就像定时炸弹,迟早炸你一脸。

6.掌握到啥程度才算合格?

能设计模块化的软件架构,搞定复杂度的项目,可以以无际单片机项目的6作为参考。

六、全栈大佬

当你成为软件架构师后,就可以继续深造硬件,成为全栈大佬,软硬通吃了。

职责一般如下:

  • 需求分析:搞清楚你要干嘛。

  • 硬件选型:挑对单片机和外设。

  • 电路设计:画电路图,布局PCB。

  • 软件架构:设计程序框架,模块化开发。

  • 系统调试:用示波器、逻辑分析仪找出问题。

这块涉及的内容就太多了,等大家到达这个阶段,相信不用我说也懂了。

从零基础到独立设计,不是一天两天的事,而是以年为周期,可能是5年,可能是10年,甚至更久。

学习单片机,不是为了炫技,而是为了解决问题,创造价值。当你用自己的双手和大脑,设计出一个能工作的系统,那种成就感是无与伦比的。就像我第一次让小车跑起来,虽然歪歪扭扭,但我开心得像个孩子。

最后,送你一句话:纸上得来终觉浅,绝知此事要躬行。


最近很多粉丝问我单片机怎么学,我根据自己从业十年经验,累积耗时一个月,精心整理一份「单

片机最佳学习路径+单片机入门到高级教程+工具包」全部无偿分享给铁粉!!!

除此以外,再含泪分享我压箱底的22个热门开源项目,包含源码+原理图+PCB+说明文档,让你迅速进阶成高手

教程资料包和详细的学习路径可以看我下面这篇文章的开头

《单片机入门到高级开挂学习路径(附教程+工具)》

《单片机入门到高级开挂学习路径(附教程+工具)》

《单片机入门到高级开挂学习路径(附教程+工具)》

相关文章:

从零基础到能独立设计单片机产品,一般需要经历哪些学习阶段?

相信很多人,内心都有“钢铁侠”的幻想,成为能写程序,能设计硬件,能设计结构,能焊接的全能型人才。 上次徐工问我,如果你财富自由了,想去做啥? 我说出来,可能大家都不信&a…...

ORACLE 19.8版本遭遇ORA-600 [kqrHashTableRemove: X lock].宕机的问题分析

客户反馈单机环境的一个数据库半夜突然宕机了,这是一个比较重要的系统;接到通知后分析对应日志,发现ALERT日志中有明显报错:ORA-600 [kqrHashTableRemove: X lock]. 600报错我简单的分为2类,一类不会导致宕机&#x…...

OpenCV实现图像分割与无缝合并

一、图像分割核心方法 1、阈值分割 #include <opencv2/opencv.hpp> using namespace cv; int main() {Mat img imread("input.jpg", IMREAD_GRAYSCALE);Mat binary;threshold(img, binary, 127, 255, THRESH_BINARY); // 固定阈值分割imwrite("binary.…...

《AI浪潮中的璀璨新星:Meta Llama、Ollama与DeepSeek的深度剖析》:此文为AI自动生成

《AI浪潮中的璀璨新星&#xff1a;Meta Llama、Ollama与DeepSeek的深度剖析》&#xff1a;此文为AI自动生成 引言&#xff1a;AI 大模型的群雄逐鹿时代 在科技飞速发展的当下&#xff0c;AI 大模型领域已成为全球瞩目的焦点&#xff0c;竞争激烈程度堪称白热化。从 OpenAI 推出…...

如何搭建个人静态住宅IP:从零开始

你好&#xff01;今天我们将一起探索如何从头开始搭建个人静态住宅IP。无论您是为了远程办公、在线教育还是游戏加速&#xff0c;静态住宅IP都能带给您更稳定的网络体验。 一、准备阶段 1. 明确需求 首先&#xff0c;您需要清楚自己为什么需要静态住宅IP。可能是为了实现远程…...

机器人触觉的意义

机器人触觉的重要性 触觉在机器人领域至关重要&#xff0c;尤其是在自主操作、精细操控、人机交互等方面。虽然视觉和语音技术已高度发展&#xff0c;但机器人在现实世界中的操作仍然受限&#xff0c;因为&#xff1a; 视觉有局限性&#xff1a;仅凭视觉&#xff0c;机器人难…...

【赵渝强老师】达梦数据库的目录结构

达梦数据库安装成功后&#xff0c;通过使用Linux的tree命令可以非常方便地查看DM 8的目录结构。 tree -L 1 -d /home/dmdba/dmdbms#输出的信息如下&#xff1a; /home/dmdba/dmdbms ├── bin 存放DM数据库的可执行文件&#xff0c;例如disql命令等。 ├── bin2 ├── d…...

centos7使用gpu加速的MinerU

https://mineru.readthedocs.io/zh-cn/latest/user_guide/install/boost_with_cuda.html 由于官方只有ubantu的安装教程&#xff0c;并没有基于centos7的&#xff0c;故需要自己修改命令安装并使用。 在运行此 Docker 容器之前&#xff0c;您可以使用以下命令检查您的设备是否…...

反射、反射调用以及修改成员变量,成员方法,构造函数、反射的应用

DAY11.2 Java核心基础 反射&#xff08;第二弹&#xff09; 第一弹请访问链接&#xff1a; 反射&#xff08;第一篇&#xff09; getMethod(String name, Class… parameterTypes)getMethods()getDeclaredMethod(String name,Class… parameterTypes)getDeclaredMethods() …...

对Spring的每种事务传播级别的应用场景和失效场景

好的&#xff0c;下面针对Spring的每种事务传播级别&#xff0c;详细说明其应用场景和失效场景&#xff0c;帮助更好地理解它们的实际使用。 1. REQUIRED&#xff08;默认&#xff09; 应用场景&#xff1a; 大多数业务方法&#xff0c;尤其是需要事务支持的操作。例如&#x…...

DeepSeek linux服务器(CentOS)部署命令笔记

Linux&#xff08;CentOS&#xff09;FinalShellOllama远程访问&#xff0c;本地部署deepseek 自备CentOS服务器&#xff0c;并且已经使用FinalShell连接到服务器 一、准备工作 1.更新服务器 apt-get update-y 2.下载Ollama curl -fsSL https://ollama.com/install.sh | …...

阿里巴巴发布 R1-Omni:首个基于 RLVR 的全模态大语言模型,用于情感识别

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

OpenCV 拆分、合并图像通道方法及复现

视频讲解 OpenCV 拆分、合并图像通道方法及复现 环境准备&#xff1a;安装 OpenCV 库&#xff08;pip install opencv-python&#xff09; 内容&#xff1a; 1. 读取任意图片&#xff08;支持 jpg/png 等格式&#xff09; 2. 使用 split () 函数拆解成 3 个单色通道&#xf…...

Node 使用 SSE 结合redis 推送数据(echarts 图表实时更新)

1、实时通信有哪些实现方式&#xff1f; 特性轮询&#xff08;Polling&#xff09;WebSocketSSE (Server-Sent Events)通信方向单向&#xff08;客户端 → 服务端&#xff09;双向&#xff08;客户端 ↔ 服务端&#xff09;单向&#xff08;服务端 → 客户端&#xff09;连接方…...

提升 Instagram 账号安全性:防止数据泄露的步骤

提升 Instagram 账号安全性&#xff1a;防止数据泄露的步骤 在这个数字化时代&#xff0c;Instagram 不仅是我们分享生活点滴的平台&#xff0c;也是个人信息交换的场所。随之而来的&#xff0c;是数据泄露的风险。保护好自己的 Instagram 账号&#xff0c;防止个人信息外泄&a…...

实现“XXX一张图“进行环境设施设备可视化管理

实现“电网一张图”、“铁路一张图”、“水库一张图”、“森林一张图”等概念,本质上是将某一领域的空间数据、设施设备、运行状态等信息整合到一个统一的数字化平台上,实现全域可视化、智能化管理和协同运营。这种“一张图”模式依赖于地理信息系统(GIS)、物联网(IoT)、…...

RTDETR融合[CVPR2025]ARConv中的自适应矩阵卷积

RT-DETR使用教程&#xff1a; RT-DETR使用教程 RT-DETR改进汇总贴&#xff1a;RT-DETR更新汇总贴 《Adaptive Rectangular Convolution for Remote Sensing Pansharpening》 一、 模块介绍 论文链接&#xff1a;https://arxiv.org/pdf/2503.00467 代码链接&#xff1a;https:/…...

深度解读DeepSeek部署使用安全(48页PPT)(文末有下载方式)

深度解读DeepSeek&#xff1a;部署、使用与安全 详细资料请看本解读文章的最后内容。 引言 DeepSeek作为一款先进的人工智能模型&#xff0c;其部署、使用与安全性是用户最为关注的三大核心问题。本文将从本地化部署、使用方法与技巧、以及安全性三个方面&#xff0c;对Deep…...

微服务无状态服务设计

微服务无状态服务设计是构建高可用、高扩展性系统的核心方法。 一、核心设计原则 请求独立性 每个请求必须携带完整的上下文信息&#xff0c;服务不依赖本地存储的会话或用户数据。例如用户认证通过JWT传递所有必要信息&#xff0c;而非依赖服务端Session。 状态外置化 将会话…...

Android 高版本 DownloadManager 封装工具类,支持 APK 断点续传与自动安装

主要有以下优点 兼容高版本 Android&#xff1a;适配 Android 10 及以上版本的存储权限和安装权限。断点续传&#xff1a;支持从断点继续下载。下载进度监听&#xff1a;实时获取下载进度并回调。错误处理&#xff1a;处理下载失败、网络异常等情况。自动安装 APK&#xff1a;…...

Apache Hudi 性能测试报告

一、测试背景 数据湖作为一个集中化的数据存储仓库,支持结构化、半结构化以及非结构化等多种数据格式,数据来源包含数据库数据、增量数据、日志数据以及数仓上的存量数据等。数据湖能够将这些不同来源、不同格式的数据集中存储和管理在高性价比的分布式存储系统中,对外提供…...

Flask使用Blueprint注册管理路由

在 Flask 中&#xff0c;可以使用 蓝图&#xff08;Blueprint&#xff09; 来组织和注册路由&#xff0c;从而让代码更加模块化和易于维护。以下是完整的使用方法&#xff1a; 1. 创建 Flask 项目结构 建议的项目目录结构如下&#xff1a; my_flask_app/ │── app.py …...

LuaJIT 学习(3)—— ffi.* API 函数

文章目录 GlossaryDeclaring and Accessing External Symbolsffi.cdef(def)ffi.Cclib ffi.load(name [,global])例子&#xff1a;ffi.load 函数的使用 Creating cdata Objectscdata ffi.new(ct [,nelem] [,init...]) cdata ctype([nelem,] [init...])例子&#xff1a;匿名 C…...

[资源分享]-web3/区块链/学习路线/资料/找工作方式/水龙头

记录个人学习web3整理的资料 后续如果有 了解/入坑 打算, 提前收藏一下. 1. 学习路线 登链社区-学习路线图 2. 学习资料 国内成系统的资料比较少,我整理的网盘的,关注私信我,资料互相学习 前言 | 区块链技术指南 学习web3-僵尸小游戏 web3.js文档 ethers.js官方文档 Hardhat文…...

Django-ORM-prefetch_related

Django-ORM-prefetch_related 模型定义N1 查询问题示例 使用 prefetch_related 优化查询处理更复杂的查询示例&#xff1a;预取特定条件的书籍示例&#xff1a;预取多个关联字段 性能比较注意事项总结 通过 Author 和 Books 两个模型来理解 Django 的 prefetch_related 方法。 …...

MySQL 批量插入 vs 逐条插

MySQL 插入数据&#xff1a;批量插入 vs 逐条插入&#xff0c;哪个更快&#xff1f; 在 MySQL 中&#xff0c;插入数据有两种常见方式&#xff1a; 批量插入&#xff1a;一条 SQL 插入多条数据。逐条插入&#xff1a;每次插入一条数据。 这两种方式有什么区别&#xff1f;哪…...

Linux centos 7 grub引导故障恢复

CentOS 7误删GRUB2可以通过以下步骤恢复&#xff1a; 进入救援模式 1. 插入CentOS 7安装光盘&#xff0c;重启系统。在开机时按BIOS设置对应的按键&#xff08;通常是F2等&#xff09;&#xff0c;将启动顺序调整为CD - ROM优先。 2. 系统从光盘启动后&#xff0c;选择“…...

要在Unreal Engine 5(UE5)中实现角色打击怪物并让怪物做出受击反应,

UE5系列文章目录 文章目录 UE5系列文章目录前言一、实现思路二、最终效果 前言 ue5角色受击没有播放受击动画&#xff0c;主角达到怪物身上没有反应 一、实现思路 要在Unreal Engine 5&#xff08;UE5&#xff09;中实现角色打击怪物并让怪物做出受击反应&#xff0c;你需要…...

Navicat for Snowflake 震撼首发,激活数据仓库管理全新动能

近日&#xff0c;Navicat 家族迎来了一位全新成员 — Navicat for Snowflake。Snowflake 是一款基于云架构的现代数据仓库解决方案&#xff0c;以其弹性扩展、高性能和易用性著称。这次首发的Navicat for Snowflake 专为简化 Snowflake 数据库管理任务而精心打造。它凭借其直观…...

【redis】发布订阅

Redis的发布订阅&#xff08;Pub/Sub&#xff09;是一种基于消息多播的通信机制&#xff0c;它允许消息的**发布者&#xff08;Publisher&#xff09;向特定频道发送消息&#xff0c;而订阅者&#xff08;Subscriber&#xff09;**通过订阅频道或模式来接收消息。 其核心特点如…...

高级java每日一道面试题-2025年2月26日-框架篇[Mybatis篇]-Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式 ?

如果有遗漏,评论区告诉我进行补充 面试官: Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式 ? 我回答: 在Java高级面试中讨论MyBatis如何将SQL执行结果封装为目标对象并返回的过程时&#xff0c;我们可以从过程细节和映射形式两个方面来综合解答这个问…...

linux root丢失修改密

在RHEL7下重置密码 第一种方式&#xff1a;光驱进入急救模式 //做之前最好 selinuxdisabled Conntinue 然后chroot /mnt/sysimag 然后编辑/etc/shadow文件 第二种方式&#xff1a; 1&#xff1a;编辑启动菜单按e,找到linux16行&#xff0c;在行尾加入 init/bin/sh,同时在…...

OpenCV中文路径图片读写终极指南(Python实现)

文章目录 OpenCV中文路径图片读写终极指南&#xff08;Python实现&#xff09;一、问题深度解析1.1 现象观察1.2 底层原因 二、中文路径读取方案2.1 终极解决方案&#xff08;推荐&#xff09;2.2 快速修复 三、中文路径保存方案3.1 通用保存函数3.2 使用示例 四、技术原理详解…...

linux 时间同步(阿里云ntp服务器)

1、安装ntp服务 rootlocalhost ~]# yum -y install ntp 已加载插件&#xff1a;fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.nju.edu.cn* centos-sclo-rh: mirrors.nju.edu.cn* centos-sclo-sclo: mirrors.huaweicloud.com* epel: m…...

Go vs Rust vs C++ vs Python vs Java:谁主后端沉浮

一、核心性能对比(基于TechEmpower基准测试) 语言单核QPS延迟(ms)内存消耗适用场景Rust650,0000.1245MB高频交易/区块链C++720,0000.0932MB游戏服务器/实时渲染Go230,0000.45110MB微服务/API网关Java180,0001.2450MB企业ERP/银行系统Python12,0008.5220MBAI接口/快速原型技术…...

5 分钟搭建 Prometheus + Grafana 监控

一.安装 Prometheus cd /usr/local/ wget https://github.com/prometheus/prometheus/releases/download/v2.38.0/prometheus-2.38.0.linux-amd64.tar.gz tar xvf prometheus-2.38.0.linux-amd64.tar.gz ln -s prometheus-2.38.0.linux-amd64 prometheus二.安装 node_exporter…...

【机器人-基础知识】标定 - 相机内参求解原理(单应性矩阵、内参约束方程)

1. 求解目标&#xff1a;内参 从世界坐标系到像素坐标系的齐次坐标形式&#xff1a; s [ u v 1 ] K [ R t ] [ X w Y w Z w 1 ] s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} K \, [\, R \quad t \,] \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} s ​uv1​ ​K…...

【QT】-一文说清楚QT定时器怎么用

在 Qt 中&#xff0c;定时器&#xff08;QTimer&#xff09;是用来定时执行某些任务的非常有用的类。它可以帮助你在指定的时间间隔后重复执行某个函数。常见的用法是启动一个定时器&#xff0c;每过一段时间自动执行某个操作&#xff0c;比如更新 UI、检查状态或发送数据等。 …...

QT编程之JSON处理

一、核心类库及功能 Qt 提供了一套完整的 JSON 处理类库&#xff08;位于 QtCore 模块&#xff09;&#xff0c;支持解析和生成 JSON 数据&#xff1a; ‌QJsonDocument‌&#xff1a;表示完整的 JSON 文档&#xff0c;支持从 QJsonObject 或 QJsonArray 初始化‌。‌QJsonOb…...

优选算法系列(1.双指针_下)

目录 五. 有效三角形的个数&#xff08;medium&#xff09; 题目链接&#xff1a;有效三角形的个数 解法: 代码&#xff1a; 六&#xff1a;和为 s 的两个数字&#xff08;easy&#xff09; 题目链接&#xff1a;和为 s 的两个数字 解法&#xff1a; 代码; 七&#xf…...

江科大51单片机笔记【15】直流电机驱动(PWM)

写在前言 此为博主自学江科大51单片机&#xff08;B站&#xff09;的笔记&#xff0c;方便后续重温知识 在后面的章节中&#xff0c;为了防止篇幅过长和易于查找&#xff0c;我把一个小节分成两部分来发&#xff0c;上章节主要是关于本节课的硬件介绍、电路图、原理图等理论…...

MS51FB9AE单片机解密实践与解析

MS51FB9AE 单片机解密实践与解析 在电子技术领域&#xff0c;MS51FB9AE 作为一款基于 8051 内核的单片机&#xff0c;凭借其强大功能与良好性能&#xff0c;在家用电器、智能仪表等诸多领域广泛应用&#xff0c;深受市场青睐。然而&#xff0c;厂家所采用的独特加密技术&#x…...

java 手搓一个http工具类请求传body

import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets;public class HttpUtil {/*** JSON请求发起*/public static String httpJsonRequest(String requestUrl, String requestJson) {String responseJson &…...

从零搭建微服务项目Pro(第2-2章——JSR303自定义文件校验+整合至微服务公共模块)

前言&#xff1a; JSR 303&#xff0c;即 Bean Validation&#xff0c;是 Java EE 6 中的一项子规范&#xff0c;旨在为 Java Bean 提供一种标准化的数据验证机制。它通过注解的方式&#xff0c;允许开发者在 Java 类的字段或方法上直接定义验证规则&#xff0c;从而将验证逻辑…...

Python 实现大文件的高并发下载

项目背景 基于一个 scrapy-redis 搭建的分布式系统&#xff0c;所有item都通过重写 pipeline 存储到 redis 的 list 中。这里我通过代码演示如何基于线程池 协程实现对 item 的中文件下载。 Item 结构 目的是为了下载 item 中 attachments 保存的附件内容。 {"crawl_tim…...

【论文笔记】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)

文章目录 问题创新网络主要贡献Autoencoder-like Dehazing NetworkAdaptive Mixup for Feature PreservingDynamic Feature Enhancement1. 可变形卷积的使用2. 扩展感受野3. 减少网格伪影4. 融合空间结构信息 Contrastive Regularization1. 核心思想2. 正样本对和负样本对的构建…...

Java vs Go:SaaS 系统架构选型解析与最佳实践

在构建 SaaS&#xff08;Software as a Service&#xff09;系统时&#xff0c;选用合适的技术栈至关重要。Java 和 Go 是当今最受欢迎的后端开发语言之一&#xff0c;各自有其优势和适用场景。那么&#xff0c;SaaS 系统开发应该选择 Java 还是 Go&#xff1f;本文将从多个维度…...

OpenEuler-22.03-LTS上利用Ansible轻松部署MySQL 5.7

一、需求 使用ansible自动化部署mysql二进制部署mysql部署mysql并创建JDBC用户 二、环境信息 本文涉及的代码&#xff0c;配置文件地址&#xff1a; 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;1g6y 软件名称版本备注Ansible2.9.27All modules — Ansible Doc…...

vscode编译器的一些使用问题

目录 解决pip不可用问题 检查VSCode的终端配置 解决pip不可用问题 eg&#xff1a; C:\Users\student>pip pip 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 先找到系统环境变量 高级->环境变量 系统属性->Path 变量名随意&#xff0c;自己后续知道…...

解决Windows版Redis无法远程连接的问题

&#x1f31f; 解决Windows版Redis无法远程连接的问题 在Windows系统下使用Redis时&#xff0c;很多用户会遇到无法远程连接的问题。尤其是在配置了Redis并尝试通过工具如RedisDesktopManager连接时&#xff0c;可能会报错“Cannot connect to ‘redisconnection’”。今天&am…...