写AVR已经两年了。如果初中时候玩Arduino也算的话,就是6年。

两年以来,我用AVR单片机完成了两个大项目:

  • AVR单片机教程,一时兴起写的,效果不好;

  • MEDS,参赛用的课题,半完成,比赛都结束了就放弃了。

以及若干小项目,AVR×C++、光立方、摇摇棒等,还有未完成的USB下载器、升级版光立方和摇摇棒等。

尽管还有未完成的项目,我对AVR已经有点厌倦了。这有很多原因:

  • AVR性能实在不行,自编程单片机系统感觉很悬(可能是我好高骛远);

  • 我接触到的AVR单片机都是十多年的型号了,新的ATmega4809感觉很不错但是买不到,我吃不到葡萄说葡萄酸;

  • AVR社区环境不好,至少我感觉不好,Arduino玩家跟我不在一个频道上;

  • 答辩的时候被问到为什么用I²C不用CAN,我根本不懂CAN,感觉自己too young;

  • 前两天有人问我硬件学习相关的,涉及到物联网,我又不懂了,感觉自己too simple;

  • 之前去交大电院感受过STM32,感觉很牛逼。

总之我主观地得出一个结论,AVR整不出什么名堂。我深知AVR是我的舒适区,于是我又把该结论扩展到所有8/16位机,逼自己跳出舒适区,学STM32。

说来也巧,STM32开发板和下载器我手边都有。之前买电子元器件的时候看到一块开发板降价,想着以后肯定要用就买下了,STM32F407VET6核心板,42.9元。下载器呢,以前捣鼓STM8的时候买了ST-LINK,8.8元。

不花现在的钱就等于不要钱。至于开发工具和教程等,网上都有免费的,很容易找到。于是我成功地0元踏上STM32之路。

现在环境已经搭建好了,写了两个简单的程序,STM32CubeMX+HAL非常友好,我不知道我为什么现在才跳出舒适区。

其实我还有一块F103核心板,还有另一种下载器,400多元的开发板也在购物车躺了很久了,这些都侧面反映出STM32的草已经种得很深了。现在非常后悔,为啥之前一直不肯跳出舒适区,把大把时光都浪费了呢?

之前写AVR的文章,定位是教程,教程要求准确无误,不能误导读者,这给了我很大压力,要有据可考,要旁征博引,要尽量全面地分析。

本系列的定位是学习笔记,可以错,甚至可以抄。但我还是尽量保证准确,并加入自己的理解。我自认为我对编程的理解比大多数人深刻,我希望这一点能继续保持。

我不期待本系列会有读者,权当唱独角戏了。当然如果你愿意看我的笔记的话,我会很开心的;如果你能有收获就更好了。无论如何,用博客记笔记是一种好习惯。

写这篇文章,就是为了督促自己学习,争取周更。如果做不到,我就把这篇文章放在这里,嘲笑一个井底之蛙,或是一个浅尝辄止的人。

STM32学习笔记——序言的更多相关文章

  1. STM32学习笔记——OLED屏

    STM32学习笔记--OLED屏 OLED屏的特点: 1.  模块有单色和双色可选,单色为纯蓝色,双色为黄蓝双色(本人选用双色): 2.  显示尺寸为0.96寸 3.  分辨率为128*64 4.   ...

  2. STM32学习笔记——点亮LED

    STM32学习笔记——点亮LED 本人学习STM32是直接通过操作stm32的寄存器,使用的开发板是野火ISO-V2版本: 先简单的介绍一下stm32的GPIO: stm32的GPIO有多种模式: 1 ...

  3. stm32学习笔记----双串口同时打开时的printf()问题

    stm32学习笔记----双串口同时打开时的printf()问题 最近因为要使用串口2外接PN532芯片实现通信,另一方面,要使用串口1来将一些提示信息输出到上位机,于是重定义了printf(),使其 ...

  4. stm32学习笔记——外部中断的使用

    stm32学习笔记——外部中断的使用 基本概念 stm32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间只能使用一个.比如说,PA0,PB0 ...

  5. STM32学习笔记(四)——串口控制LED(中断方式)

    目录: 一.时钟使能,包括GPIO的时钟和串口的时钟使能 二.设置引脚复用映射 三.GPIO的初始化配置,注意要设置为复用模式 四.串口参数初始化配置 五.中断分组和中断优先级配置 六.设置串口中断类 ...

  6. STM32学习笔记-NVIC中断知识点

    STM32学习笔记-NVIC中断知识点总结 中断优先级设置步骤 1. 系统运行后先设置中断优先级分组 函数:void NVIC_PriorityGroupConfig(uint32_tNVIC_Pri ...

  7. STM32学习笔记之一(初窥STM32)

    怎么做好学习笔记? 答:自我感知-->学习知识-->归纳总结-->自我升华(真正属于自己的知识是,抛开书本,运用时,你还能记得的思想) 自我感知--看到知识概念,先自我感觉那应该是个 ...

  8. STM32学习笔记(一)——点亮一个LED

    引言 最近报名了2017全国大学生电子设计竞赛,我们学校是第一次参加这个比赛,由于8/9月份就要比赛了,所以现在准备是比较晚的了,指导老师说只能做控制类的题目了,让我们学习一下STM32单片机,51到 ...

  9. STM32学习笔记(二) 基于STM32-GPIO的流水灯实现

    学会了如何新建一个工程模板,下面就要开始动手实践了.像c/c++中经典的入门代码"hello world"一样,流水灯作为最简单的硬件设备在单片机领域也是入门首推.如果你已经有了一 ...

随机推荐

  1. AtCoder Beginner Contest 165

    比赛链接:https://atcoder.jp/contests/abc165/tasks A - We Love Golf 题意 区间 $[a, b]$ 中是否存在 $k$ 的倍数. 代码 #inc ...

  2. Databricks 第11篇:Spark SQL 查询(行转列、列转行、Lateral View、排序)

    本文分享在Azure Databricks中如何实现行转列和列转行. 一,行转列 在分组中,把每个分组中的某一列的数据连接在一起: collect_list:把一个分组中的列合成为数组,数据不去重,格 ...

  3. [Golang]-3 函数、多返回值、变参、闭包、递归

    // test01 project main.go package main import ( "fmt" ) // 单返回值的函数 func plus(a int, b int) ...

  4. zoj-3870 (二进制)

    For an upcoming programming contest, Edward, the headmaster of Marjar University, is forming a two-m ...

  5. java8按照lamda表达式去重一个list,根据list中的一个元素

    /** * 按照指定字段给list去重 * @param list * @return */ public static List<DataModel> niqueList(List< ...

  6. 010. NET5_命令参数读取+配置多种读取

    上节课遗留问题:上节脚本启动后,CSS样式丢失问题 解决办法:a.拷贝丢失的wwwroot目录:b. 给UesStaticFiles类指定读取wwwroot目录 静态文件读取 Nuget引入:Micr ...

  7. JVM系列之一 JVM的基础概念与内存区域

    前言 作为一名 Java 语言的使用者,学习 JVM 有助于解决程序运行过程中出现的问题.写出性能更高的代码. 可以说:学好 JVM 是成为中高级 Java 工程师的必经之路. 有感于从未整理归纳 J ...

  8. PostCSS All In One

    PostCSS All In One https://postcss.org/ https://www.webpackjs.com/loaders/postcss-loader/ https://gi ...

  9. 23 种设计模式 APP & 23 Design Patterns App

    23 种设计模式 APP & 23 Design Patterns App https://github.com/xgqfrms/23-design-patterns-app https:// ...

  10. auto switch HTTP protocol Chrome Extension

    auto switch HTTP protocol Chrome Extension HTTPS auto switch to HTTP VPN https://chrome.google.com/w ...