怎样学会单片机
0、学单片机首先要明白,一个单片机啥也干不了,学单片机的目的是学习怎么用单片机驱动外部设备,比如数码管,电机,液晶屏等,这个需要外围电路的配合,所以学习单片机在这个层面上可以等同为学习单片机的开发板怎么用,也就是学习怎么写单片机上面跑的软件
1、刚开始学51单片机就可以了,看郭天祥十天学会单片机视频,网上一大把,跟着学就行了,c语言不会也没太大关系,学完就会了,注意买开发板不要买跟郭天祥视频里面引脚一模一样的,给自己制造一点困难,这样学到的更扎实,主要就是了解外设如何驱动和单片机的功能寄存器如何配置,如何使用中断,如何在while(1)里面进行任务调度和时间片分配。
2、然后是学习STM32,更高端一点的单片机,有个叫正点原子的出的教程不错,跟着学,软件水平能有很大提升,自己想个项目做,比如智能家居,智能小车,很简单,做完了就感觉单片机都差不多,差别只在功耗和性能。进阶的话可以买一些电路模块来学习,比如液晶屏,步进电机,红外,语音,以太网等等,理论上,学习任何一款单片机产品的使用,只要能点亮流水灯(使用GPIO),就算半只脚进门了,剩下的就是学一学那些外设的寄存器如何使用,常见的有UART,i2c,spi,Adc/dac,Dma,usb,以太网,外部总线等等,其中uart就是串口必须掌握,其他用到啥临时学都可以。当然如果能都掌握也是极好的ヾ ^_^♪
3、学习ucos-ii,首先别管里面是怎么实现的,先会用,学会写task,最后再去了解这个系统怎么实现的,读一下作者的经典著作,受益终生
4、学习嵌入式linux,linux开发有两种,一种是在开发用户程序,比如腾讯qq啥的,这一种与win下面写程序差不多,也可以使用c++或者java ,一种是开发内核驱动,只能用c写,比如usb驱动或者摄像头驱动啥的,这个就分别去学就好了。
linux开发和单片机的开发完全是两码事,单片机借用的是底层协议,比如i2c,uart,spi,没有协议就自己用gpio搞一个;但是linux下面的开发大多是使用通用的网络协议,这些都是建立在一堆软件库之上的,比如tcpip,ssh,telnet,ftp,http等,学linux应用开发基本就是纯软件的,放到哪个linux下面都可以跑,单片机就不行了,与硬件紧耦合。

我连夜给大家整理了一套单片机的学习秘籍,将你从入门级变成大师级工程师,掌握科技的奥秘!评论区给我一个6这份秘籍免费送出!
相关文章:
怎样学会单片机
0、学单片机首先要明白,一个单片机啥也干不了,学单片机的目的是学习怎么用单片机驱动外部设备,比如数码管,电机,液晶屏等,这个需要外围电路的配合,所以学习单片机在这个层面上可以等同为学习单片…...
数据结构笔记--常见二叉树分类及判断实现
目录 1--搜索二叉树 2--完全二叉树 3--平衡二叉树 4--满二叉树 1--搜索二叉树 搜索二叉树的性质:左子树的节点值都比根节点小,右子树的节点值都比根节点大; 如何判断一颗二叉树是搜索二叉树? 主要思路: 递归自底向…...
docker小白第二天
centos上安装docker docker官网,docker官网,找到下图中的doc文档。 进入如下页面 选中manuals,安装docker引擎。 最终centos下的docker安装文档链接:安装文档链接. 具体安装步骤: 1、打开Centos,输入命…...
【变形金刚03】使用 Pytorch 开始构建transformer
一、说明 在本教程中,我们将使用 PyTorch 从头开始构建一个基本的转换器模型。Vaswani等人在论文“注意力是你所需要的一切”中引入的Transformer模型是一种深度学习架构,专为序列到序列任务而设计,例如机器翻译和文本摘要。它基于自我注意机…...
「Web3大厂」价值70亿美元的核心竞争力
经过近 5 年的研发和酝酿,Linea 团队在 7 月的巴黎 ETHCC 大会期间宣布了主网 Alpha 的上线,引起了社区的广泛关注。截止 8 月 4 日,据 Dune 数据信息显示,其主网在一周内就涌入了 100 多个生态项目,跨入了超 2 万枚 E…...
前端发送请求和后端springboot接受参数
0.xhr、 ajax、axios、promise和async/await 和http基本方法 xhr、 ajax、axios、promise和async/await都是异步编程和网络请求相关的概念和技术! xhr:XMLHttpRequest是浏览器提供的js对象(API),用于请求服务器资源。…...
程序一直在阿里云服务器运行
保持阿里云服务器开机程序保持运行. 1.下载Screen CentOS 系列系统: yum install screen Ubuntu 系列系统: sudo apt-get install screen 2、运行screen,创建一个screen screen -S name:name是标记进程, 给进程备注…...
Linux 文件与目录管理
nvLinux 文件与目录管理 我们知道 Linux 的目录结构为树状结构,最顶级的目录为根目录 /。 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。 在开始本教程前我们需要先知道什么是绝对路径与相对路径。 绝对路径: 路径的写…...
【CSS】CSS 布局——弹性盒子
Flexbox 是一种强大的布局系统,旨在更轻松地使用 CSS 创建复杂的布局。 它特别适用于构建响应式设计和在容器内分配空间,即使项目的大小是未知的或动态的。Flexbox 通常用于将元素排列成一行或一列,并提供一组属性来控制 flex 容器内的项目行…...
“华为杯”研究生数学建模竞赛2018年-【华为杯】B题:光传送网建模与价值评估(附优秀论文及matlab代码实现)
目录 摘要: 1.问题重述 1.1 问题背景 1.2 问题提出 2.问题假设 3.符号说明...
群晖 nas 自建 ntfy 通知服务(梦寐以求)
目录 一、什么是 ntfy ? 二、在群晖nas上部署ntfy 1. 在Docker中安装ntfy 2. 设置ntfy工作文件夹 3. 启动部署在 docker 中的 ntfy(binwiederhier/ntfy) 三、启动配置好后,如何使用ntfy 1. 添加订阅主题( Subscribe to topic…...
Java基础练习九(方法)
求和 设计一个方法,用于计算整数的和 public class Work1101 {public static void main(String[] args) {// 设计一个方法,用于计算整数的和System.out.println(sum(7, 6));}public static int sum(int a, int b) {return a b;} }阶乘 编写一个方法&…...
Python-OpenCV中的图像处理-图像轮廓
Python-OpenCV中的图像处理-图像轮廓 轮廓什么是轮廓查找轮廓绘制轮廓轮廓特征图像的矩轮廓面积轮廓周长(弧长)轮廓近似凸包凸性检测边界矩形直边界矩形旋转边界矩形(最小面积矩形)最小外接圆最小外接三角椭圆拟合直线拟合 轮廓的…...
@Cacheable缓存相关使用总结
本篇文章主要讲解Spring当中Cacheable缓存相关使用 在实际项目开发中,有些数据是变更频率比较低,但是查询频率比较高的,此时为了提升系统性能,可以使用缓存的机制实现,避免每次从数据库获取 第一步:使用E…...
c++ static
static 成员 声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用 static修饰的成员函数,称之为静态成员函数。静态成员变量一定要在类外进行初始化。 看看下面代码体会一下: //其他类 class …...
【数据结构】——栈、队列的相关习题
目录 题型一(栈与队列的基本概念)题型二(栈与队列的综合)题型三(循环队列的判空与判满)题型四(循环链表表示队列)题型五(循环队列的存储)题型六(循…...
C++初阶之一篇文章教会你list(模拟实现)
list(模拟实现) list模拟实现list_node节点结构定义std::__reverse_iterator逆向迭代器实现list迭代器 __list_iterator定义list类成员定义list成员函数定义1.begin()、end()、rbegin()和rend()2.empty_init()3.构造函数定义4.swap5.析构函数定义6.clear…...
设备工单管理系统如何实现工单流程自动化?
设备工单管理系统属于工单系统的一种,基于其丰富的功能,它可以同时处理不同的多组流程,旨在有效处理发起人提交的事情,指派相应人员完成服务请求和记录全流程。该系统主要面向后勤管理、设备维护、物业管理、酒店民宿等服务行业设…...
ubuntu20.04.6anzhuang mtt s80
需要打开主板的Resize BAR和Above 4G功能,否则GPU显存不能被正确识别; 2. 在某些不支持PCIe Gen5的主板上,需要把PCIe速率由auto设置为PCIe Gen4速率; sudo apt install lightdm unity-greetersheding lightdm : lightdm sudo apt install /…...
【LeetCode-中等】剑指 Offer 36. 二叉搜索树与双向链表
题目链接 剑指 Offer 36. 二叉搜索树与双向链表 标签 后序遍历、二叉搜索树 步骤 二叉搜索树中的任一节点的直接前驱为其左子树的最右侧节点,直接后继为其右子树的最左侧节点。因此,可以通过这个关系来操作原来的二叉树。为了不影响深度较大的节点的…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
