单片机学完开发板,如何继续提升自己的技能?
很多人学完开发板后都会卡在一个尴尬的阶段:觉得自己会的东西不少,但又不知道下一步该干啥。会点C语言,能烧录程序,能点亮LED,玩转按键,搞定串口等等,能用开发板做点小玩意儿,但面对实际项目时,发现自己啥也不会,脑子一片空白。
或者学了点新东西,比如I2C、SPI,却不知道咋用在实际项目里。
现在的你,就像刚拿到驾驶证的新手司机,会开车了,但离在各种路况下都能游刃有余的老司机还有一段距离。
这种迷茫很正常,毕竟单片机技术不是一朝一夕能吃透的。
下一步的提升方向,其实很明确了。
你只需要问自己一个问题:我这么辛苦学这些东西来干什么?
我相信绝大多数的答案,都是想快速找到嵌入式开发的工作。
那你就要搞懂企业的需求,按照他们的需求去针对性学习,就是离工作最近的事了。
你随便打开招聘网站搜“单片机工程师”,JD(职位描述)里动不动就是“熟练掌握C”、“熟悉RTOS”、“精通数模电”、“独立完成过项目开发”、"3年以上开发经验"等等。
再低头看看自己:会51单片机,会用STM32开发板上的模块写个串口打印,要么就是温控系统、智能小车这些烂大街的毕设。
醒醒吧,这些在HR眼里,可能连基础扎实的边都摸不到,开发板是个教学工具,标准化、模块化的设计虽然方便你上手,但离真实工程项目差得远。
真正的单片机工程师,不仅要会玩开发板,还得搞定复杂的软件逻辑,应对硬件突然罢工、功耗超标、程序跑飞、客户三天两头改需求等恶心问题、甚至得跟老板解释“为啥这个功能三天了还没调好”。
这些乱七八糟的麻烦,开发板上是模拟不出来的。
在提升技能之前,咱先搞清楚目标:企业到底想要啥样的人?毕竟,你的目标是通过单片机开发找到工作,那就得对准招聘需求来发力。随便翻翻招聘网站,像“嵌入式工程师”“单片机开发工程师”这样的岗位,JD里列的那一堆要求看着就让人头晕。
别慌,下面根据我的经验,帮你把这些“天书”翻译成大白话:
1.编程能力得扎实 主要还是C语言,刚开始,你不一定得要写出高效、稳定的代码,但最起码给你一个项目,你能去维护里面的代码,改改需求啥的,我第一份工作就是干这种事。
2.懂点嵌入式系统,比如RTOS RTOS(实时操作系统)听起来高大上,其实就是个“任务调度大师”,能让多个功能(比如采集数据、发送信号)同时跑还不打架。
企业爱问这个,因为现在很多单片机上面都跑了rtos,比如esp32s3,还有一些蓝牙协议栈芯片,建议学freertos,用得挺多的。
不过这个并不是刚需,很多产品,并没有上rtos的,只能说算个加分项吧。
3.硬件得会玩 单片机开发不是纯软件活儿,硬件调试是基本功。焊接个电路、用万用表测个电压、抓个波形看看通信有没有问题,这些基本的也要会。
很多人刚开始没条件买万用表,示波器啥的,也没关系,这些仪器用起来也很简单的,去到公司找个硬件教一下,半个小时基本就上手了。
4.通信协议得熟悉 I2C、SPI、UART这3个是刚需中的刚需,必须熟练掌握,不夸张的说,几乎90%的项目都会用到这些协议。
一般是用于像传感器、显示屏、无线模组等等。
5.工作经验
现在大多数都是要求几年以上的开发经验,其实这个可能是刚需,也可能不是,为啥这样说呢?
如果你真按照他们要求去筛选,然后去投,哪怕干了5年,10年,都有很多不适合的。
其实刚开始压根不用管对方工作经验的要求,直接投。
万一对方需要一些人才储备,和你聊完,又发现你有培养的潜力,机会不就来了。
别想着什么大机会,一投一个准了,都是从这些夹缝,各种尝试中找机会的。
6.项目经验 这个基本是2025年的超刚需了,目前大多数人其实是卡在这里。
企业意向中的第一梯队,是看你做过的产品,和他们公司类不类似,技术栈越接近,成功率越高。
看到这,你可能心里一咯噔:我去,这要求也太高了吧!我才刚学会用开发板,咋整?
别急,继续往下看,跟着老哥,猥琐发育。
开发板虽然好用,但它有个致命的局限:太完美了。板子上的模块都给你焊好了,库函数都写好了,接上USB就能跑代码,简直是“傻瓜式开发”。但真实项目可没这么省心。
客户可能会扔给你个奇葩需求,比如“做一个低功耗的猫粮喂食器,还要联网”,硬件得自己设计,软件得自己优化,连电源线插哪都得自己琢磨。
所以,我们学完开发板后,知识先别从”大脑里出来“,尝试把不同开发板的知识“拆开用”。
开发板上的那些小模块,其实是真实项目的基础。
比如,你用过板子上的温湿度传感器对吧?别光会调库函数,试着研究一下它的数据手册,搞清楚它是怎么通过I2C协议把数据传给单片机的。
然后,买个单独的传感器,自己搭个电路试试,看能不能脱离开发板独立跑起来。这一步的关键是,从“用现成的”过渡到“自己搭起来”。
这相当于你积累了一个知识数据库,下次项目碰到类似的,就可以直接拿来参考了,一脸懵逼是因为没有参考。
接下来讲讲怎么积累项目经验?
其实也就这么几个渠道:
1.开源社区
比如GitHub、Gitee之类的,我这里也收集了一些,可以给大家拿去练手。
2.学校电赛
全国大学生电子设计竞赛、蓝桥杯这些比赛,都可以参与一下。
比赛通常会给一个题目,比如“设计一个自动跟随行李箱”,限时几天让你交作品。压力虽然大,但能逼着你把硬件、软件、调试全搞一遍,经验值蹭蹭涨。没得奖也没关系,作品往简历上一放,面试官问起来,你能头头是道地讲“当时怎么调的代码,怎么焊的板子”,这就是硬核实力。
3.找实习
如果有机会,可以找个单片机相关的实习,哪怕工资低点也没事。
企业里的项目跟自己瞎玩完全不一样,你会接触到真实的开发流程、团队协作。
4.找付费资源
付费可以快速占有优质资源,例如稀缺的商品、专业的建议、雇佣到最好的人才等等,从而更好的挣钱。
免费的结果则是,劣质的资源,或过多的人瓜分有限的资源。
比如无际单片机的项目,对标某宝的4G/WiFi/Lora防盗报警系统产品。
除了以上硬技能,个人觉得软技能对于找工作来说,能占到20-30%,比如:
1.沟通能力
单片机工程师需要清楚地解释技术概念给非技术人员,比如向客户说明产品功能。这包括书面和口头沟通,比如写文档或开会讨论。
2.解决问题能力
他们经常需要调试代码或优化硬件设计,因此需要系统地分析问题并找到解决方案。
3.团队意识
项目通常需要与多个工程师合作联调,比如硬件、结构、APP,任何一个环节出现问题,项目都有可能烂尾。
4.情商
理解自己和他人的情绪,能读懂对方情绪背后的需求,这点真的很重要,很多新人一上来就各种索取同事帮忙,其实站在他的角度想想,他为什么要帮你?他能从中获得什么?
很现实,但也是现实。
最近很多粉丝问我单片机怎么学,我根据自己从业十年经验,累积耗时一个月,精心整理一份「单
片机最佳学习路径+单片机入门到高级教程+工具包」,全部无偿分享给铁粉!!!
除此以外,再含泪分享我压箱底的22个热门开源项目,包含源码+原理图+PCB+说明文档,让你迅速进阶成高手!
教程资料包和详细的学习路径可以看我下面这篇文章的开头。
《单片机入门到高级开挂学习路径(附教程+工具)》
《单片机入门到高级开挂学习路径(附教程+工具)》
《单片机入门到高级开挂学习路径(附教程+工具)》
相关文章:
单片机学完开发板,如何继续提升自己的技能?
很多人学完开发板后都会卡在一个尴尬的阶段:觉得自己会的东西不少,但又不知道下一步该干啥。会点C语言,能烧录程序,能点亮LED,玩转按键,搞定串口等等,能用开发板做点小玩意儿,但面对…...
Nginx 日志格式
默认日志格式配置 log_format main $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for";该格式记录了客户端IP、用户、时间、请求、状态…...
Spring Boot 整合 Elasticsearch 实践:从入门到上手
引言 Elasticsearch 是一个开源的分布式搜索引擎,广泛用于日志分析、搜索引擎、数据分析等场景。本文将带你通过一步步的教程,在 Spring Boot 项目中整合 Elasticsearch,轻松实现数据存储与查询。 1. 创建 Spring Boot 项目 首先ÿ…...
STM32 —— 嵌入式系统、通用计算机系统、物联网三层架构
目录 一、嵌入式系统的概念 二、通用计算机系统与嵌入式系统的比较 用途 硬件 软件 性能与功耗 开发与维护 三、嵌入式系统与物联网的关系 四、物联网的三层架构 1. 感知层(Perception Layer) 2. 网络层(Network Layer) …...
SARAD 解读
出处:NIPS 2024 代码链接:https://github.com/daidahao/SARAD/ 一 文章动机 ① 时间建模(Temporal Modeling)的局限性: a. 时间维度上 感受野极小;b. 变量间时间戳错位 (时间建模、空间建模不统一) →…...
【愚公系列】《高效使用DeepSeek》017-知识点思维导图生成
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...
【linux】scp和rsync
scp 和 rsync 都是 Linux 系统中用于文件传输的命令行工具,它们都可以通过网络在本地和远程主机之间传输文件。 scp 命令 定义 scp 是 “secure copy” 的缩写,它是一个基于 SSH 协议的文件传输工具,用于在本地和远程主机之间安全地复制文…...
软件需求分类、需求获取(高软46)
系列文章目录 软件需求分类,需求获取 文章目录 系列文章目录前言一、软件需求二、获取需求三、真题总结 前言 本节讲明软件需求分类、需求获取的相关知识。 一、软件需求 二、获取需求 三、真题 总结 就是高软笔记,大佬请略过!...
蓝桥杯单片机之AT24C02(基于自己对AT24C02的学习和理解)
一、先用抽象法说明原理,让原理变得简单易懂: 1、向AT24C02写入数据: 有个关系户,他想安排自己的儿子进某个大厦里某个楼层的公司,那么他就要先找到这个公司的地址,然后再找到该公司是第几楼,最…...
【Qt】Qt + Modbus 服务端学习笔记
《Qt Modbus 服务端学习笔记》 1.因为项目的需要,要写一个modbus通信,csdn上感觉有些回答,代码是人工智能生成的,有些细节不对。我这个经过实测,是可以直接用的。 首先要包含Qt 的相关模块 Qt Modbus 模块主要包含以…...
抖音用户视频批量下载工具开发全解析
一、逆向工程原理剖析 1.1 抖音Web端防护体系 抖音采用五层防御机制保护数据接口: graph LRA[浏览器指纹检测] --> B[请求参数签名]B --> C[Cookie动态验证]C --> D[请求频率限制]D --> E[IP信誉评级] 1.2 核心参数解密 参数名称作用原理生成方式有效期x-bogu…...
DeepSeek写打台球手机小游戏
DeepSeek写打台球手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端打台球小游戏H5文件: 要求 可以重新开始游戏 可以暂停游戏 有白球和其他颜色的球&am…...
清晰易懂的 Swift 安装与配置教程
初学者也能看懂的 Swift 安装与配置教程 本教程将手把手教你如何在 macOS 系统上安装 Swift,配置依赖包缓存位置,并指出新手容易踩坑的细节。即使你是零基础小白,也能快速上手! 一、安装 Swift(macOS 环境)…...
Post-Training Quantization, PTQ
Post-Training Quantization(PTQ) 是 模型训练完成后,对其参数(权重 & 激活值)进行量化 的方法,目的是 减少存储占用 & 提高推理速度,同时尽可能保持模型精度。 相比于 量化感知训练&a…...
linux Redhat9.5采用DNS主从实现跨网段解析
文章目录 主从服务器DNS实现跨网段解析一、服务器规划二、主服务器配置1、安装bind2、修改主配置文件3、配置区域配置文件4、配置正向解析文件5、配置反向解析文件6、检查并启动服务 三、从服务器配置1、安装bind2、配置主配置文件3、修改区域配置文件4、检查并启动服务 四、路…...
Python个人学习笔记(18):模块(异常处理、traceback、日志记录)
七、异常处理 语法错误不属于异常,处理的是程序运行时的一些意外情况 代码: a int(input(>>>:)) b int(input(>>>:)) print(a / b) # 在运行的时候由于数据不对,导致出错 # 此时程序会中断 prin…...
记一次MyBatis分页莫名其妙的失效,首次执行合适,后续执行分页失效且异常
代码几乎一样,为啥这个xml配置的就会出现莫名其妙的问题呢 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{propertymybatis_plus_first, modeI…...
Claude是什么?适合哪些场景?
Claude 是由人工智能公司 Anthropic 开发的一款 大型语言模型(LLM),旨在通过自然语言交互帮助用户完成复杂任务。以下是关于 Claude 的核心信息: 1. 核心定位 • 安全可靠: 采用 Constitutional AI(宪法AI…...
基于yolov11的持刀检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
【算法介绍】 基于YOLOv11的持刀检测系统 随着公共安全问题的日益突出,特别是在公共场所如机场、车站、学校等地,持刀等危险行为频发,对人们的生命财产安全构成严重威胁。传统的监控手段往往依赖于人工观察,但这种方式不仅效率低…...
openEuler24.03 LTS下安装Hive3
目录 前提条件 安装MySQL 卸载原有mysql及mariadb 下载mysql 解压mysql 安装mysql 启动mysql服务 开机自启动mysql服务 登录mysql 修改mysql密码 远程连接mysql 安装Hive 下载安装包 解压 设置环境变量 解决日志包冲突 将mysql驱动拷贝到lib目录 配置Hive 创…...
13-动态规划-最长公共子序列
题目 来源 24. 最长公共子序列 思路 不想打字,援引自最长公共子序列 (LCS) 详解例题模板(全)-CSDN博客 图示举例: 其余详见代码 代码 #include<bits/stdc.h> using namespace std; const int N110; int f[N][N]; int m…...
golang 生成单元测试报告
在 Go 语言中,你可以使用 go test 生成单元测试报告。以下是几种方法: 1. 生成基本测试报告(文本格式) go test -v ./... > test_report.txt-v:显示详细的测试信息./...:递归测试所有子目录> test_r…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
设备健康管理系统是什么,设备健康管理系统多少钱?
想象一下,你的汽车在仪表盘报警前 3 天,手机就收到 “发动机轴承剩余寿命 1500 公里” 的提醒 —— 这就是 ** 设备健康管理系统(EHM)** 的日常。在制造业,设备故障每年造成全球 3.4 万亿美元损失,而 80% 的…...
设计模式(创建型)-抽象工厂模式
摘要 在软件开发的复杂世界中,设计模式作为解决常见问题的最佳实践方案,一直扮演着至关重要的角色。抽象工厂模式,作为一种强大的创建型设计模式,在处理创建一系列或相关依赖对象的场景时,展现出了独特的优势和灵活性。它通过提供一个创建对象的接口,让开发者能够在不指定…...
docker 部署elk 设置账号密码
1. 先把 kibana 停掉 2.进入es 容器 docker exec -it 75895a078cbc /bin/bash 找到 bin 目录 执行 ./elasticsearch-setup-passwords interactive 全部设置一样的密码 ,不一样自己要记住,设置成功会输出如下内容 Changed password for user [apm_system] Chang…...
<table>内有两行<tr>,第一行设定高度为60,剩余第二行,和右侧元素高度补齐。
实现 <table> 内第一行高度设定为 60px,第二行和右侧元素高度补齐的效果,你可以通过 CSS 样式来控制。示例: 为第一行 <tr> 设置固定高度 60px。对于右侧元素,假设它是一个 <div> 或者其他容器,将其…...
QT5.15.2加载pdf为QGraphicsScene的背景
5.15.2使用pdf 必须要安装QT源码,可以看到编译器lib目录已经有pdf相关的lib文件,d是debug 1.找到源码目录:D:\soft\QT\5.15.2\Src\qtwebengine\include 复制这两个文件夹到编译器的包含目录中:D:\soft\QT\5.15.2\msvc2019_64\include 2.找…...
常见的工具和技术
Mockito Mockito 是一个流行的 Java Mocking 框架,用于创建和配置模拟对象(Mock Objects),以便在单元测试中模拟复杂依赖关系的行为 使用场景:单元测试、隔离测试 EclipseEclipse 是一个开源的集成开发环境(…...
Linux怎样源码安装Nginx
1. 安装必要的依赖 在编译 Nginx 之前,你需要安装一些必要的依赖包,像编译工具和库文件等。以 CentOS 系统为例,可借助yum命令来安装: bash sudo yum install -y gcc pcre-devel zlib-devel openssl-devel要是使用的是 Ubuntu 系…...
汇编指令(20250319)
SOC常用总线 AHB(Advanced High-performance Bus):先进高性能总线,连接RAM,ROM等高速设备APB(Advanced Peripheral Bus):先进外设总线,连接外设等一些低速设备 CISC和R…...
PlainUSR|LIA: 追求更快的卷积网络实现高效的超分辨率重建
PlainUSR|LIA: 追求更快的卷积网络实现高效的超分辨率重建 引言 在深度学习领域,图像处理始终是一个热门话题。而超分辨率重建(Super-Resolution Reconstruction, SR)作为其中一个重要的研究方向,旨在通过算法将低分辨率图像恢复…...
神经网络基础之正则化
引言:正则化 (Regularization) 是机器学习中一种用于防止模型过拟合技术。核心思想是通过在模型损失函数中添加一个惩罚项 (Penalty Term),对模型的复杂度进行约束,从而提升模型在新数据上的泛化…...
JAVA序列化与反序列化URLDNS链CC1链
1、序列化的实现 java序列化的是对象属性的,只有实现了Serializable或者Externalizable接口的类的对象才能被序列化为字节序列。(不是则会抛出异常),静态成员变量是属于类的,所以静态成员变量是不能被序列化的&#x…...
孤儿进程和僵尸进程
本文讲述了什么是孤儿进程和僵尸进程,会带来怎样的问题以及如何处理 一、孤儿进程 1)什么是孤儿进程 孤儿进程,顾名思义,就是父进程提前终止,但是子进程还在运行中,父进程无法对子进程进行监管&#…...
用ASCII字符转化图片
代码 from PIL import Image# 定义 ASCII 字符集,从最暗到最亮 ASCII_CHARS "%#*-:. "def resize_image(image, new_width100):width, height image.sizeratio height / widthnew_height int(new_width * ratio)resized_image image.resize((new_wi…...
从WebRTC到嵌入式:EasyRTC如何借助大模型提升音视频通信体验
随着人工智能技术的快速发展,WebRTC与大模型的结合正在为音视频通信领域带来革命性的变革。WebRTC作为一种开源实时通信技术,以其低延迟、跨平台兼容性和强大的音视频处理能力,成为智能硬件和物联网设备的重要技术支撑。 而EasyRTC作为基于W…...
自动化测试工具-Playwright介绍和快速实例
Playwright 是什么 Playwright 是由 Microsoft 开发的开源自动化测试工具,专为现代 Web 应用设计。它支持 Chromium、Firefox 和 WebKit 内核的浏览器,能够跨平台(Windows、macOS、Linux)运行,提供强大的浏览器自动化能力,适用于测试、爬虫和监控等场景。 Playwright的…...
Java:Apache HttpClient中HttpRoute用法的介绍
当使用Apache HttpClient组件时,经常会用到它的连接池组件。典型的代码如下: PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager();connectionManager.setMaxTotal(httpConfig.getMaxPoolTotal());connect…...
万字长文详解|蚂蚁数据湖深度探索与业务应用实践
作者介绍:黄超傑,蚂蚁数据智能部实时数据团队数据研发工程师,致力于数据湖技术在蚂蚁落地应用、蚂蚁广告实时数仓建设、蚂蚁数据成本治理等工作。 在开始之前 如果: 你想要提升数据时效,能够接受分钟级延迟你好奇准实…...
rk3568 以太网eth1 , 定制板 phy调试问题。
问题: 客户定制底板的 phy 网络不通。 解决逻辑: phy 问题, 就是 照着 公司底板对硬件就行,完全是硬件问题,不用改 软件。 原理图如下:...
React相关面试题
以下是150道React面试题及其详细回答,涵盖了React的基础知识、组件、状态管理、路由、性能优化等多个方面,每道题目都尽量详细且简单易懂: React基础概念类 1. 什么是React? React是一个用于构建用户界面的JavaScript库ÿ…...
IT工具 | node.js 进程管理工具 PM2 大升级!支持 Bun.js
P(rocess)M(anager)2 是一个 node.js 下的进程管理器,内置负载均衡,支持应用自动重启,常用于生产环境运行 node.js 应用,非常好用👍 🌼概述 2025-03-15日,PM2发布最新版本v6.0.5,这…...
php 高性能,高并发,有哪些框架,扩展,推荐一下,或者技术的实现有哪些
以下是针对PHP高性能、高并发场景的框架、扩展及技术实现推荐,结合最新技术趋势和行业实践进行总结: 一、高性能框架推荐 1. C扩展类框架 YAF (Yet Another Framework) 特点:由C语言编写,直接嵌入PHP内核,仅提供核心M…...
golang单机锁实现
1、锁的概念引入 首先,为什么需要锁? 在并发编程中,多个线程或进程可能同时访问和修改同一个共享资源(例如变量、数据结构、文件)等,若不引入合适的同步机制,会引发以下问题: 数据竞…...
面试中JVM常被问到的问题以及对应的答案
在面试中,关于JVM常被问到的问题以及对应的答案可能包括: 什么是JVM?它的作用是什么? 答:JVM是Java虚拟机的缩写,是Java程序运行的环境。它负责将Java源代码编译成字节码并运行在不同平台上。 请解释一下J…...
算法——广度优先搜索——跨步迷宫
原题链接 思路:找出最短路径,然后判断是否存在连续三个点是横纵坐标相等的,如果有就步数减1 但是有两个样例过不了 错误原因:在错误的测试案例中,最短路径可能有多条,而我刚好选了一条比较曲折的&#x…...
Python pyqt+flask做一个简单实用的自动排班系统
这是一个基于Flask和PyQt的排班系统,可以将Web界面嵌入到桌面应用程序中。 系统界面: 功能特点: - 读取员工信息和现有排班表 - 自动生成排班表 - 美观的Web界面 - 独立的桌面应用程序 整体架构: 系统采用前后端分离的架构…...
链表操作:分区与回文判断
目录 链表分区(Partition) 功能概述 代码实现 要点与难点 注意事项 链表回文判断(PalindromeList) 功能概述 代码实现 要点与难点 注意事项 总结 在链表相关的算法问题中,理解链表的基本结构和操作至关重要…...
基于大模型的腮腺多形性腺瘤全周期诊疗方案研究报告
目录 一、引言 1.1 研究背景与目的 1.2 研究现状与趋势 二、大模型预测原理与方法 2.1 大模型概述 2.2 数据收集与预处理 2.3 模型训练与优化 三、术前预测与评估 3.1 肿瘤特征预测 3.2 风险评估 3.3 案例分析 四、术中方案制定与实施 4.1 手术方案选择 4.2 面神…...