单片机学习要先学什么
更多
好的,学习单片机是一个循序渐进的过程,建议从以下基础内容开始学习:
? 第一阶段:打牢基础
-
? 基础电子知识 (非常重要!):
- 电路基础: 理解电压、电流、电阻、欧姆定律等基本概念。
- 模拟电子技术基础: 了解二极管、三极管(基本原理即可)、电容、电感等基本元件的特性和作用。
- 数字电子技术基础: 重点掌握! 理解逻辑门 (与、或、非、与非、或非等)、二进制、十六进制、布尔代数、锁存器、触发器、寄存器的概念和工作原理。这是理解单片机内部结构和外设控制的核心。
- 电路图识读: 学会看懂基本的电路原理图,特别是单片机的典型应用电路(如最小系统电路、LED驱动电路、按键检测电路等)。
- 常用仪器仪表: 了解万用表、示波器的基本使用方法。
-
? C语言编程基础 (重中之重!):
- 虽然单片机可以用汇编语言编程,但C语言是当前最主流、最易上手、效率足够高的选择。必须熟练掌握。
- 核心知识点:
- 数据类型、变量、常量、运算符、表达式
- 程序结构:顺序、选择 (if...else, switch)、循环 (while, for, do...while)
- 函数: 定义、声明、调用、参数传递 (值传递、指针传递)
- 数组与字符串: 一维数组、二维数组、字符数组、字符串处理基础 (熟练使用
strlen,strcpy,strcmp等) - 指针: 核心中的核心! 深入理解指针的概念、声明、运算(取值
*、取地址&)。单片机编程中大量涉及对硬件寄存器的直接操作(通过指针寻址)。 - 结构体与共用体: 用于组织复杂数据(如配置外设寄存器结构)。
- 宏定义 (#define): 提高代码可读性和可维护性。
- 位操作: 熟练使用位运算符 (
&,|,~,^,<<,>>) 进行单个位的设置、清除、取反和判断。这是嵌入式编程的精髓之一。 - 良好的编程习惯:注释、命名规范、模块化设计思想。
? 第二阶段:拥抱单片机世界
-
选择一款主流的入门单片机:
- 主流品牌选择: STC8051系列 (国内最流行,资料多,便宜),或 STM32 (ARM Cortex-M系列) (市场占有率高,性能强,资料极其丰富,但相对8051入门稍难)。强烈建议初学者从 STC15/STC8系列开始(基于增强型8051)。Arduino平台基于硬件抽象层,可能隐藏过多底层细节,不利于真正理解单片机工作原理,适合快速原型验证。
- 获取资料: 找到该单片机的官方数据手册和参考手册 (User Manual/Reference Manual)。它们是学习该单片机的圣经!
-
理解单片机体系结构:
- 内核:了解是8051、ARM Cortex-M0/M3/M4 等。
- 存储器结构: ROM (Flash/程序存储器)、RAM (数据存储器)、特殊功能寄存器 (SFR) - 理解SFR是控制外设的关键!
- 时钟系统: 时钟源 (内部晶振、外部晶振)、时钟树、倍频/分频。理解时钟是一切动作的时间基准。
- 复位电路: 上电复位、手动复位、看门狗复位。理解最小系统的组成。
- 引脚功能 (GPIO): 输入/输出模式、复用功能、上拉/下拉电阻、开漏输出。这是与外部世界交互的桥梁。
-
开发环境搭建:
- 集成开发环境 (IDE):
- 51单片机: Keil C51, SDCC (开源), STC-ISP 自带的编程环境。
- STM32: Keil MDK-ARM, IAR Embedded Workbench, STM32CubeIDE (免费,ST官方推荐)。
- 编译器/工具链: 理解项目如何被编译、链接成可执行的 .hex 或 .bin 文件。
- 烧录/下载工具与软件:
- 51单片机: STC-ISP (通常使用串口/USB转串口工具)。
- STM32: ST-LINK/J-Link 等调试器/下载器 + STM32CubeProgrammer/Keil/IAR 集成环境。
- 掌握在IDE中创建项目、编写代码、编译、下载程序到单片机的基本流程。
- 集成开发环境 (IDE):
-
入门实践 - 点亮第一盏灯 (GPIO控制):
- 理解一个I/O口控制一个LED灯的基本电路(限流电阻!)。
- 学习如何在IDE中配置工程,选择正确的MCU型号,设置正确的时钟源。
- 学习如何配置GPIO口的方向 (输入/输出)。
- 编写最简单的代码,通过置位/清零GPIO口来控制LED的亮灭 (使用位操作!)。
- 实现LED闪烁(延时实现 - 后面会被定时器取代)。
? 第三阶段:深入功能与外设
-
核心外设学习 (按推荐顺序):
- 定时器/计数器 (Timer):
- 定时功能:实现精确延时、时间片调度。
- 计数功能:对外部脉冲计数 (如编码器)。
- PWM输出:控制电机速度、LED亮度调节。
- 捕获功能:测量脉冲宽度 (如红外遥控、超声波测距)。
- 理解定时器的工作模式、预分频、重装载值、溢出中断等概念。
- 中断系统 (Interrupt):
- 理解中断的概念、中断源(外部中断、定时器中断、串口中断等)、中断优先级、中断嵌套。
- 掌握中断服务函数 (ISR) 的编写规则(快速处理、避免阻塞)。
- 利用中断实现异步事件的响应(如按键按下)。
- 串行通信 (UART/USART):
- 理解异步串行通信原理(波特率、数据位、停止位、奇偶校验、起始位)。
- 实现单片机和电脑(通过USB转TTL串口模块,如CH340/CP2102)进行通信,发送调试信息(printf重定向到串口)或接收指令。
- 学习双机或多机之间的串口通信。
- 模数转换器 (ADC):
- 将模拟量(如温度、光强、电压)转换成数字量。
- 理解分辨率(如8位、10位、12位)、参考电压、采样时间等概念。
- 实践应用:读取电位器电压、热敏电阻温度等。
- 定时器/计数器 (Timer):
-
进阶外设 (掌握基础后深入学习):
- 其他通信接口: SPI, I2C。用于连接各类传感器(如温湿度传感器、加速度计)、存储芯片(如EEPROM, Flash)、显示屏(如OLED)等外设。理解通信协议和数据传输时序。
- 高级定时器: 针对电机控制等应用,支持互补输出、死区控制等。
- 看门狗 (WDT): 防止程序跑飞,提高系统可靠性。
- 低功耗模式: 针对电池供电应用。
? 持续学习与实践
- 阅读数据手册与参考手册: 这是掌握一款单片机的终极法宝!学会查阅寄存器定义、电气特性、外设描述。
- 实践项目驱动学习: 做项目是最好的学习方式! 从一个具体的目标开始(如电子时钟、温湿度监测器、遥控小车),应用学到的知识去设计硬件、编写软件、调试解决问题。在项目中巩固已有知识,并不断学习新知识。
- 学习调试技巧: 熟练使用串口打印调试信息,学习使用仿真器进行单步调试、查看寄存器/变量值、断点设置等。
- 了解实时操作系统 (RTOS - 可选): 当项目变得复杂,需要多任务管理时,可学习如 FreeRTOS、uC/OS 等嵌入式操作系统。
- 关注社区与资源: 关注相关论坛、博客(如CSDN)、视频教程(如BiliBili)、开源项目。善于搜索和学习他人的经验。
? 总结关键起步点:
- ? 电子基础(模数电) 是理解硬件的基础。
- ? C语言(特别是指针、位操作) 是编程的利刃。
- ? 一款具体型号的单片机(如STC8)及其数据手册 是学习的对象。
- ? 开发环境(IDE + 编译器 + 下载工具) 是动手的工具。
- ? 动手实践 - 点亮LED 是建立信心的第一步。
最重要的:动手!动手!动手!不要停留在看书和看视频上,搭建电路、写代码、调试错误是必经之路! 祝你学习顺利!??
先学Arduino而不是先学单片机
转自KiritoA’s Blog突然想起一个很重要的问题,为什么大家(包括我)都认为参加电子设计大赛,或者做点什么制作都非得要先学好单片机,还有模电数电这些基础知识?本文针对还没有足够专业知识的同学
资料下载
佚名
2021-11-14 17:51:00
怎样学会单片机?先学什么,怎么入门?
,定时器,单片机汇编语句等。每天背概念,记理论,过了大概一个月,结果肯定就是一个懵逼的状态。正在这个懵逼的时候,实验室的一个同学建议我先学C语言
资料下载
385288
2021-11-13 13:36:03
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机