STM32学习—入门

两年前开始接触嵌入式物联网,从最开始的51到后面的STM8再到STM32,从WiFi到ZigBee再到NB-IoT,学的东西越来越杂,但是现在回过头来又发现自己好像什么都不会,刚好趁着这次疫情好好总结下自己这两年来的点点滴滴。最早开始学习 STM32 是用的正点原子的一块开发板,后面也陆续买过几块别家的板子,但是相比较之下还是感觉正点原子的稍微好一些,资料更全面,视频讲解也很到。,如果有同学刚开始学习STM32的话,可以去B站看下原子哥的视频,当然最好还是买一块开发板来动手操作,我一直认为实践才是最高效的学习方法。

嵌入式系统概述

  1. 嵌入式系统定义:以应用为中心,以计算机技术为基础,软硬件可按需求进行定制,从而满足各种设计指标。与通用计算机系统不同在于它是为某些特定任务而设计的。
  2. 体系结构:嵌入式硬件(处理器、外围设备)+嵌入式软件(操作系统、应用软件)
  3. 微控制器与微处理器
    • 微处理器更多的指处理器的部分,即CPU
    • 微控制器除了处理器之外,还集成了内存,定时器,存储单元(Flash),DMA和其他外设接口,是一个片上计算机。
    • 系统芯片:也是在单个芯片上集成一个完整的系统,由一个中央控制单元通过总线控制其他子系统模块,一般采用多个处理器核心。
  4. 常见外设接口和总线:
    • 串行通信接口:RS-232、I2C、SPI等
    • USB接口
    • 多媒体卡接口:SD卡、CF卡等
    • 网络接口:有线和无线网络等
    • GPIO、模数/数模转换(ADC/DAC)接口
  5. 嵌入式操作系统:抢占式调度机制、响应时间短、内核可裁剪、可移植性强
  6. 在线调试:通过嵌入式处理器内部的硬件控制模块和调试状态来实现,需要利用在线仿真器(ICE)、JTAG或SWD等实现。
  7. 嵌入式系统特点:
    • 是面向应用,及有很强的专用性,需要根据应用需求进行软硬件裁剪和配置。
    • 有实时性的要求,并且要求能够和外部环境进行数据采集、交互和实时响应
    • 软硬件资源受到严格限制,通常都有小型化、轻量化、低功耗和低成本的要求

STM32初探

  1. 什么是STM32
    • 基于ARM内核的32位MCU系列,内核为ARM公司的Cortex-M内核(为要求高性能、低成本、低功耗的嵌入式应用专门设计)
  2. Cortex-M4采用ARMv7-ME架构,Cortex-M0采用ARMv6-M架构,Cortex-A5/A8采用ARMv7-A架构,传统ARM7采用ARMv4T架构
  3. ARMv7架构(2007年后)定义了三大分工明确的系列
    • “A”系列:面向尖端的基于虚拟内存的操作系统和用户应用
    • “R”系列:针对实时系统
    • “M”系列:针对微控制器
  4. STM32F4XX:
    • Cortex-M4内核:浮点运算能力、增强的DSP处理指令
    • 更多的存储空间:高达1M字节的片上内存、高达196K字节的内嵌SRAM、FSMC灵活的外部存储接口
    • 极致的运行速度:以168MHz高速运行时可达到210DMIPS的处理能力
    • 更高级的外设:照相机接口、加密处理器、USB高速OTG接口、FIFO DMA控制器
    • 运行模式:程序和代码在Flash或RAM中,开启ARM加速
  5. STM32命名规则:
    stm
  6. STM32优势:
    • 极高的性能
    • 丰富合理的外设,合理的功耗,合理的价格
    • 强大的软件支持:丰富的软件包
    • 全面丰富的技术文档
    • 芯片型号种类多,覆盖面广
    • 强大的用户基础

如有错误,请批评指正!

猜你喜欢

转载自www.cnblogs.com/yangyu-IoT/p/12714955.html