当前位置: 首页 > news >正文

STM32标准库学习笔记

前言

(此文为我许久之前学习32标准库笔记的备份,不包含代码,仅图文)

以下先以STM32F103c8t6为例子

如果有时候不弹出代码提示格,按一下 ctrl+alt+空格 就可以了

Keil MDK STM32全系列 PACK包 下载地址汇总(持续更新...)转载_mdk 离线dfp 下载-CSDN博客

Keil MDK STM32全系列 PACK包 下载地址汇总(持续更新...)转载_mdk 离线dfp 下载-CSDN博客

MDK5.29,5.30,5.31,5.32,5.33, 5.34,5.35, 5.36, 5.37和各种pack软件包镜像下载(2022-05-04)_arm.mbedtls.1.6.0.pack下载-CSDN博客

MDK5.29,5.30,5.31,5.32,5.33, 5.34,5.35, 5.36, 5.37和各种pack软件包镜像下载(2022-05-04)_arm.mbedtls.1.6.0.pack下载-CSDN博客

各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别:

浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别_swd jtag 区别-CSDN博客

浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别_swd调试是什么意思-CSDN博客

————————

STM32系统结构:

————————

直接使用寄存器配置点灯:

(上图注释部分与非注释部分作用一样,表明此处为结构体指针)

C语言结构体与结构体指针的使用_c 结构体指针-CSDN博客

新建工程:

工程架构(标准库中的那些文件是干嘛用的):

————————

GPIO:

GPIO基本结构:

GPIO位结构图:

GPIO模式:

浮空输入/上拉输入/下拉输入:

模拟输入:

开漏输出/推挽输出:

复用开漏输出/复用推挽输出:

GPIO外设的推荐配置可以参考这里:

NVIC:

NVIC基本结构(用来管理中断的):

NVIC优先级分组:

外部中断(EXTI):

AFIO(数据选择器):(例:在PA0,PB0,PC0...中选一个接入EXTI,这就是为什么所有GPIO口都能触发中断,但相同的Pin不能同时触发中断的原因)

中断优先级:1.先判断抢占优先级,高抢占优先级可以打断低抢占优先级的中断

2.如果抢占优先级相同,再判断响应优先级,高响应优先级不能打断低响应优先级

————————

定时器:

基本定时器框图:

通用定时器框图:

定时中断基本结构:

预分频器时序:

计数器时序:

无预装 自动重装影子寄存器 时序图:

有预装 自动重装影子寄存器 时序图:

通用定时器输出比较:

输出比较模式(8种):

PWM:

输入捕获:

测量频率的两种方法:

输入捕获基本结构:

定时器编码器接口:

ADC:

逐次逼近ADC:

ADC基本结构图:

————————

DMA(数据转运小助手):

STM32的存储器映像:

DMA基本结构:

DMA转运数据的实际例子:

————————

串口通信:

通信接口:

USART外设:

USART基本结构:

数据帧:

起始位侦测:(不光是起始位,每一位都有16次采样,减少噪声的影响)

数据采样:

波特率发生器:

————————

I2C通信:

I2C时序:

(注意:串口通信是低位先行,I2C是高位先行)

应答:(注意:如果对SDA没有操作,SDA在上拉电阻的作用下默认为高电平,就是默认为1,也就是如果没有从机应答,那么默认就是非应答了)

MPU6050(陀螺仪):

STM32的I2C外设:

I2C框图:

I2C基本结构:

硬件I2C:

————————

SPI:

SPI数据交换模式0:

W25Q64芯片(非易失性存储器):

flash操作注意:

硬件SPI外设:

SPI框图:

SPI基本结构(图中标题打错了):

非连续传输:

连续传输:

————————

RTC:

Unix时间戳:

UTC / GMT:

Time.h 中各函数的作用:

BKP:

RTC:

RTC框图:

RTC基本结构:

部分外部硬件电路:

RTC操作注意事项:

————————

PWR电源控制:

电源框图:

低功耗模式:

睡眠模式:

停止模式:

待机模式:

WDG(看门狗):

独立看门狗框图:

键寄存器:

独立看门狗超时时间:

窗口看门狗框图:

窗口看门狗工作特性:

窗口看门狗超时时间:(PCLK1的时钟信号进到窗口看门狗预分频器之前先进行了一个固定的4096分频,所以计算时间时需要固定乘一个4096)

两种看门狗的差别:

————————

Flash闪存:

Flash基本结构:

Flash解锁(在键寄存器写入特定的值):

使用指针访问寄存器(volatile 的作用是防止编译器优化):

闪存全擦除:

闪存页擦除:

选项字节:

选项字节编程:

选项字节擦除:

http://www.xdnf.cn/news/1314127.html

相关文章:

  • 40 C++ STL模板库9-容器2-vector
  • 深度剖析Redisson分布式锁项目实战
  • 8.从零开始写LINUX内核——初始化中断控制芯片
  • 三、memblock 内存分配器
  • 《软件工程导论》实验报告五 设计建模工具的使用(一)类图
  • 《AI 与数据质量的深度碰撞:颠覆传统治理模式的变革》文章提纲
  • Java -- 泛型-自定义泛型
  • 《从入门到精通:Kafka核心原理全解析》
  • 中级统计师-会计学基础知识-第三章 会计凭证与会计账簿
  • ZYNQ QSPI控制器说明
  • OpenStack Neutron中的L2 Agent与L3 Agent:新手友好指南
  • Java 9 新特性及具体应用
  • InfluxDB 数据迁移工具:跨数据库同步方案(二)
  • 【笔记】动手学Ollma 第一章 Ollama介绍
  • 各种读取csv文件的工具性能比较
  • GEEPython-demo1:利用Sentinel-2监测北京奥林匹克森林公园2024年NDVI变化(附Python版)
  • 从零开始大模型之实现GPT模型
  • Spring Framework:Java 开发的基石与 Spring 生态的起点
  • RecSys:多目标模型和MMOE
  • Oracle数据库文件管理与空间问题解决指南
  • Reduce系列
  • GaussDB 数据库架构师修炼(十三)安全管理(3)-行级访问控制
  • 测试18种RAG技术,找出最优方案(四)
  • 用Pygame开发桌面小游戏:从入门到发布
  • 衡石使用指南嵌入式场景实践之仪表盘嵌入
  • 【FreeRTOS】队列集
  • 聊聊智慧这个东西之三:从食物的毒性、偏性聊起
  • 布隆过滤器的原理及使用
  • ubuntu网络共享
  • 银行间交易IMIX协议加密相关