AVR单片机教程——序言
我一直觉得现在的网络环境对电子技术的学习有一点问题,但始终无法确切地指出,更何况网络上相关资源已经那么丰富。
但我觉得是问题的,无论它到底是不是问题,对我来说总归是一个问题。我学习也不算深入,很多东西都没机会、没时间去接触,站在我现在的立场,我之前走了许多弯路,这就是我说它有问题的原因。
单片机是应该自学的,因为它涉及到并应用于方方面面,广泛程度使课堂只能占学习的一小部分。单片机也是适合自学的,只有在不断的尝试与实践中才能获得经验。但是网络环境似乎对自学并不友好。
单片机有两大阵营,以Arduino为代表的8/16位阵营和以STM32位代表的32位阵营。除了这两个代表,就只剩下51之类质量糟糕的(特指某国内厂家)、PIC和MSP430之类中文资料较少的和DSP之类难度高、不适合初学者的了。
Arduino虽然有丰富的教程、众多第三方模块和库,但质量、深度都参差不齐,不成系统。更重要的是,Arduino强大的封装让用户离开它以后立即不知所措,而8位机终究是有很大局限的。
学STM32也要买开发板,淘宝上某些店虽然号称资料全部免费,但实际上价格都附加在他们的硬件产品中了,要完成书上的实验,至少得花个千把块,在选购的时候就让很多人望而却步。
51能够存活到现在的原因也不过如此吧。然而51局限更大,而且质量堪忧。
所以我要写一份教程,给初学者铺一条路,在少走弯路的同时,也能学到我走弯路时获得的那些经验。跟着这份教程,你不能学到所有东西,但是我保证你只要跟着这份教程,不会出现无法解决的问题。
这份教程以AVR单片机为中心展开,使用EasyElectronics开发板,后续应该还需要别的开发板或模块,我还没有想好。
这份教程跨度很大:内容跨度很大,从电阻和LED到各类传感器,从寄存器到库函数,从过程式到基于事件,涵盖单片机相关的大部分知识;相应地,时间跨度也很长,而且我没有安排计划。
上一篇:这是第一篇
教程(不定期更新中):
EasyElectronics Library v1.0 手册
AVR单片机教程——序言的更多相关文章
- AVR单片机教程——旋转编码器
好久没写这个系列了.今天讲讲旋转编码器. 旋转编码器好像不是单片机玩家很常用的器件,但是我们的开发板上有,原因如下: 旋转编码器挺好用的.电位器能旋转的角度有限,旋转编码器可以无限圈旋转:旋转时不连续 ...
- AVR单片机教程——数码管
先解答之前一个思考题:如果不把引脚配置为输出而写高电平,连接LED会怎样? 实验结果是,LED会亮,但相比于输出高电平的情况,亮度很低.这是为什么呢? 通过上一篇教程我们知道,引脚输入输出模式是由寄存 ...
- AVR单片机教程——数字输出
从上一篇教程中我们了解到,按键与开关的输入本质上就是数字信号的读取.这一篇教程要讲的是,控制LED的原理是数字信号的输出.数字IO是单片机编程之有别于桌面编程的各项内容中最简单.最基础的. 在讲数字信 ...
- AVR单片机教程——数字输入
我们已经学习了如何使用按键和拨动开关,不知你有没有好奇 button_down 和 switch_status 等函数是如何实现的.本篇教程带你一探究竟,让我们从按键的原理开始. 在原理图中,按键的符 ...
- AVR单片机教程——拨动开关
在按键的上方有4个拨动开关.开关与按键,在原理和使用方法上都是很类似的,但有不同的用途——按键按下后松开就会弹起,而开关可以保存其状态. <switch.h> 定义了与开关相关的函数.sw ...
- AVR单片机教程——按键动作
上一篇教程中我们学习了如何读取按键状态.而按键的动作,比如单击,至少需要两个状态才能判定,长按.双击的判定更加复杂.今天我们来学习如何使用库函数判断按键单击,以及其实现原理. 我们要实现的是:当一个按 ...
- AVR单片机教程——按键状态
好久没更新了,今天开始继续,争取日更. 今天我们来讲按键.开发板的右下角有4个按键,按下会有明显的“咔嗒”声.如何检测按键是否被按下呢?首先要把按键或直接或间接地连接到单片机上.与之前使用的4个LED ...
- AVR单片机教程——随机点亮LED
之前我们做的闪烁LED和流水灯,灯效都是循环的.这次我们来尝试一些不一样的——每一次随机选择一个LED并点亮. 要实现随机的效果,我们要用C语言标准库中的相关设施: #define RAND_MAX ...
- AVR单片机教程——流水灯
上次我们用 delay 函数与 while 循环实现了一个LED的闪烁.这一次我们把所有LED加入进来,让它们依次闪烁,形成流水灯的效果. 开发板上有4个LED,我们可以用不多的语句把循环体直接描述出 ...
随机推荐
- 新零售下的 AI智能货柜
公司有个智能货柜,通过微信扫码开门,拿货,自动扣款,挺智能的.还不错.研究一下原理,网上查了一下. 文章简介: 目前新零售风刮的蛮大,笔者进入该领域近一年,负责过无人便利店.智能货柜.智慧商超等产品, ...
- MATLAB中 H(b > g) = 2*pi - H(b > g); 作何解
H(b > g) = 2*pi - H(b > g); %b > g 会得到一个逻辑矩阵,如b=[7,5,6] ;g=[1,2,8],那么b>g会得到[1,1,0]: b< ...
- 使用idea创建第一个springboot项目
版权声明:版权归作者所有,转载请注明出处. https://blog.csdn.net/qq_34205356/article/details/81098354 前言:如今springboot越来越火 ...
- GIS地理工具案例教程——栅格分割
GIS地理工具案例教程--栅格分割 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 目的:利用多边形要素类去分割栅格,每个多边形裁剪出对应的范围 ...
- MySQL远程连接和备份还原
连接远程数据库 mysql -h 数据库地址 -P 端口号 -u 用户名 -p mysql -h -u root -p 备份数据库, 热备份 mysqldump -h 127.0.0.1 -u roo ...
- 让Chrome浏览器抓包接口数据秒变 python 代码
简介 uncurl是一个库,允许您将curl请求转换为使用requests 的python代码.由于Chrome网络检查器具有的“copy as cURL”,因此该工具对于用python重新创建浏览器 ...
- CentOS7下搭建Ceph分布式存储架构
(1).Ceph概述 Ceph是为了优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统,并且还是一个开源的分布式文件系统.因为其支持块存储.对象存储,所以很自然的被用做云计算框架opensta ...
- Python - Django - simple_tag 和 inclusion_tag
simple_tag: simple_tag 和自定义 filter 类似,但可以接收更多更灵活的参数 在 app01/templatetags/ 目录下创建 mysimple_tag.py mysi ...
- 【Leetcode_easy】944. Delete Columns to Make Sorted
problem 944. Delete Columns to Make Sorted 题意:其实题意很简单,但是题目的description给整糊涂啦...直接看题目标题即可理解. solution: ...
- CF1227D Optimal Subsequences
思路: 首先对于单个查询(k, p)来说,答案一定是a数组中的前k大数.如果第k大的数字有多个怎么办?取索引最小的若干个.所以我们只需对a数组按照值降序,索引升序排序即可. 多个查询怎么办?离线处理. ...