【Day1】: STM32前言

教学宗旨

这个教学是for第一次接触STM32的人,对於已经能够熟练使用STM32的大大可能帮助不大。
在这30天当中会让你深刻的体会STM32的美好,像使用Arduino般轻松自在。而为了深刻的体会STM32,教学当中会穿插着单晶片底层的概念,在提到的时候会再次提醒这个部分是较底层的内容,若只是想要会使用的话可以暂时跳过。

这份教学的先备知识

  1. Arduino基础
    Arduino可以说是踏入Maker这个领域的第一道门,但这道门几乎没有门槛,网路上相比STM32而言,拥有更大量的教学资源,学习来说相当的简单,花个几天就可以熟悉各项功能。不过我相信,会要学习STM32的人,一定都有碰过Arduino吧?
  2. 基础C/C++语言
    如果不会基本的C语言,那你大概离STM32还有一段距离...不好意思先请回了
  3. 理解C语言指标(Pointer)的使用
    STM32支援的语言为C/C++,C语言最大的好处在於速度快且拥有直接操纵记忆体的权力(Pointer 指标)。而英国数学家艾伦·图灵於1936年提出一种将人的计算行为抽象化的数学逻辑机—图灵机(Turing machine),不外乎就是对记忆体进行取值(read)、赋值(write)等操作。因此学会指标可以使你更深刻的体会STM32的底层运行模式。
  4. 物件导向程序设计能力(C++)
    我们常说的C++是物件导向其实并不是很正确,物件导向其实是一种程序设计的方法,是抽象的。而我们常说Python、C++、Java是物件导向的语言其实只是这些语言比较方便你用物件导向的方式来设计。因此倘若你写C++但你不会用类别(class)以及物件导向的三大特性:封装(Encapsulation)、继承(Inheritance)、多形(Polymorphism),你的程序依然称不上是具有物件导向的特性的。

这29天会让你习得的能力(今天已经是第一天了!)

  • STM32基础
    这九天会让你能够简单的操纵STM32最最最基本的功能,并且在day9~day11对於底层的暂存器操纵有深刻的了解,如果只是要会使用而不想知道太详细的话也可以跳过这个部分啦~
    【Day2】:初识STM32
    【Day3】:STM32CubeIDE安装以及环境设定
    【Day4】:来使用STM32CubeIDE吧!
    【Day5】:GPIO输入输出(上)
    【Day6】:GPIO输入输出(中)
    【Day7】:GPIO输入输出(下)
    【Day8】:ADC电压采集
    【Day9】:STM32记忆体架构
    【Day10】:库函数包装—对於底层暂存器的操纵(上)
    【Day11】:库函数包装—对於底层暂存器的操纵(下)

  • STM32进阶功能
    STM32的TIMER功能可以让你明白STM32到底比Arduino强在哪里,为什麽要抛弃简单又易学的Arduino而去使用这麽复杂的STM32,在这13天当中会带你使用TIM—基本计时器以及窥探其底层的硬体实现,最後则会来使用STM32的TIM—高级计时器
    【Day12】:NVIC中断概要
    【Day13】:EXTI外部中断/事件控制器
    【Day14】:STM32辗压Arduino的功能—TIM(上)
    【Day15】:STM32辗压Arduino的功能—TIM(下)
    【Day16】:Counter的硬体实现
    【Day17】:STM32系统时钟配置(上)
    【Day18】:STM32系统时钟配置(下)
    【Day19】:PWM输出-模拟类比讯号
    【Day20】:Servo控制-By PWM输出
    【Day21】:客制化的PWM输出
    【Day22】:旋转编码器—Encoder
    【Day23】:TIM的强大功能—Encoder mode
    【Day24】:TIM-输入捕获

  • 实际应用於机器人的各种控制及程序设计技巧
    在这几章的教学当中会先简单介绍物件导向的程序设计概念,并且透过STM32实际应用於机器人的马达控制
    【Day25】:从struct进化成class的物件导向技巧
    【Day26】:STM32实际应用1—motor.rotate()物件导向的优点
    【Day27】:STM32实际应用2—马达精准控速(PID初浅教学(上))
    【Day28】:STM32实际应用2—马达精准控速(PID初浅教学(下))
    【Day29】:STM32实际应用3—DMA让你的步进马达不再失步
    【Day30】:STM32系列最终章!

虽然我已经大致上把这30天的内容列出来,但计画赶不上变化嘛,所以还是有可能会有些微的更动罗。


<<:  GitHub Action 实作持续整合 - 以 ASP.NET Core 专案为例

>>:  [Day15] Flutter - 大海捞针不是办法 ( Dartz )

Day17-Vue Router与前端路由管理

什麽是路由? 浏览器透过不同的网址,向後端的网页服务器发送请求 (Request),而服务器接收到浏...

DAY26 进行式--工作日志001

工作进度流水帐 因应前篇所说,现在开始都作为简单的工作纪录,待整个作品做完这几篇才会更新成正式的心得...

EP 11: Passing Data for Navigation in TopStore App - II

Hello, 各位 iT邦帮忙 的粉丝们大家好~~~ 本篇是 Re: 从零开始用 Xamarin 技...

【红黑树十讲・参】红黑树新增・四大规则介绍・完整图解步骤

Youtube连结:https://bit.ly/3inN3zI 红黑树的新增观念,涵盖「旋转」与...

从零开始-30日练习开发iOS APP-UserDefault Day-28

正文: 利用 UserDefault 储存资料 预览图: 程序码: import UIKit cla...