当前位置: 首页 > 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.dtcms.com/a/335292.html

相关文章:

  • MM-Spatial和Spatial-MLLM论文解读
  • 【力扣-多数元素 JAVA/Python】
  • CD4+ T细胞激活区分抗PD-L1联合抗CTLA4疗法与单药抗PD-L1治疗的响应差异-空间最近邻分析
  • 民法学学习笔记(个人向) Part.5
  • 【最后203篇系列】032 OpenAI格式调用多模型实验
  • 39.离散化与哈希
  • 数据结构:二叉树的遍历 (Binary Tree Traversals)
  • 杂记 03
  • v-scale-scree: 根据屏幕尺寸缩放内容
  • 基于Python的电影评论数据分析系统 Python+Django+Vue.js
  • 防御保护12-14
  • tmux常用命令
  • Flamingo
  • KingbaseES主备读写分离集群安装教程
  • 字节数据流
  • 北汽新能源半年报:双品牌战略拉动销量增长,多元布局促进转化
  • PIDGen!DecodeProdKey函数分析之四个断点
  • 【大模型应用开发 3.RAG技术应用与Faiss向量数据库】
  • 【leetcode】12. 整数转罗马数字
  • 关于“双指针法“的总结
  • 【Python】Python爬虫学习路线
  • “openfeign“调用接口上传文件报错:Failed to deleted temporary file used for part [file]
  • c++11扩展(c++11并发库)
  • 在职老D渗透日记day18:sqli-labs靶场通关(第26关)get报错注入 过滤or和and基础上又过滤了空格和注释符 ‘闭合 手动注入
  • echarts 画一个饼图,并且外围有一个旋转动画
  • linux下程序运行一段时间无端崩溃/被杀死,或者内存占用一直增大。linux的坑
  • 11.web api 2
  • 模式匹配自动机全面理论分析
  • AI短视频爆火?记录AIGC在影视制作场景的实践教程
  • 大模拟 Major