STM32自学手册 学习心得

首先接触到STM32最先了解到的就是各种关于GPIO的知识
首先是不是很理解GPIO口的八种工作模式的区分和适用场合
甚至都不知道这些知识要去哪里补全
在百度上查了一些但是都不是很全面,但鉴于目前我只希望尽快有一个笼统的掌握,暂时记录一下

(1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1
(2)带上拉输入_IPU——IO内部上拉电阻输入
(3)带下拉输入_IPD—— IO内部下拉电阻输入
(4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电
(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
(7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)
(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
通俗的说,输出模式就2种,开漏和推挽,我通俗的说下这两种方式
推挽:当IO口输出高电平时,相当于供电电源上(一般为3.3V)通过三极管或MOS管接到了IO口上;同理,当IO口输出低电平时,相当于IO口通过三极管或MOS管接到了GND上面。
开漏,就是当IO口输出低电平时,相当于IO口通过三极管或MOS管接到了GND上面;当IO口输出高电平时,此引脚内部悬空。

1)作为普通 GPIO 输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。
2)作为普通 GPIO 输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。
3)作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。
4)作为内置外设的输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。
5)作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。

systick
1、systick的应用作为计数器
延时
规定时间间隔
2、Usart 我把它理解成一个监控器,可以完成对数据流的检测

对于各种各样的引脚也不知道其对应的意义

TX 的意思原始来于Transmit一词,意思为发送,发射
RX 的意思原始来源于Receive一词 意思为接收,收到
TX: transmit 传送
RX: receive 接收
CS–片选 
CAS–行选通 
RAS–列选通 
RESET–复位 
CLK–时钟 
SCLK–串行时钟 
A或SA–地址线 
SYNC–串行同步 
SDATA–串行数据 
VDIMM–内存槽的电源
VCORE: CPU核心电压

I²C、SPI为通信中数据传输协议,即通信协议。
I²C通信中使用两个信号线SDA、SCL,分别为数据线和时钟线。
SPI通信中使用4根信号线MISI、MISO、SCLK、SS,分别为数据输入、数据输出、时钟和使能端,NC表示空脚。

3、涉及到了中断的设置还是比较好理解的,但问题在于不明白为什么一定要开启AFIO时钟。

https://blog.csdn.net/kobesdu/article/details/51307475这篇博客给予了比较清晰的解答

看门狗使用小知识点:
1 RCC寄存器组,设置PCLK1的频率为36MHZ,为PLL的1/2(分频1/2) 原因是APB1总线设备的最大速度是36MHZ在这里插入图片描述

3、窗口看门狗是否产生复位取决于定时计数器的值是否小于0x40,小于后发生一次复位

独立看门狗实验

IWDG没有提供类似窗口看门狗的“早期唤醒中断”的中断源,所以要配置SysTick定时器,产生250ms的时间间隔。

(1)IWDG的配置
在这里插入图片描述
在这里插入图片描述
IWDG的复位标志位于RCC寄存器组,WWDG的复位标志位于自身寄存器组里

DMA通道
1DMA挂载的总线是AHB。
2DMA传输的源地址和目标地址宽度不一致时,会按照高位丢弃的原则丢弃数据。

BKP寄存器

在这里插入图片描述
STM32对入侵事件的检测 通过监视入侵检测引脚上的电平与备份控制寄存器的TPAL位进行比较
入侵检测的实现
APB2总线
GPIOA、USART
APB1总线
PWR、BKP

BKP寄存器的内部数据默认值0x0000

关于RTC的理解参考
http://m.elecfans.com/article/677019.html
stm32的VCC/VDD/VSS/VEE/VBAT的区别
https://www.cnblogs.com/qsyll0916/p/7000471.html

RTC
STM32的RTC本质是一个独立的32位定时器

RTC特性
unsigned int mktime (struct tm * t)作用是将struct tm结构体变量t 转换为秒数据
struct tm * localtime(const time_t*)作用是将秒数据转换为类型为struct tm的结构体变量并返回该结构体指针

RTC注意事项

STM低功耗模式
STM低功耗模式的进入及退出方法
Question
深度睡眠模式
睡眠模式

ADC
ADCmain
通用定时器
在这里插入图片描述
STM高级定时器 TIM1 TIM8 位于高速APB2总线
STM通用定时器 TIM2 TIM3 TIM4 TIM5 位于低速APB1总线
STM基本定时器 TIM6 TIM7

通用定时器四大功能:时基单位、比较输出、PWM信号产生、PWM输入捕获

**

通用定时器知识扩展

时序 参考文章:http://m.elecfans.com/article/571794.html

通用定时器

时基单元功能
用途:事件基准功能

比较输出功能
用途:控制一个输出波形
指示一段给定的时间到时

PWM信号产生
用途:在定时引脚上输出一个确定频率确定占空比的信号
在这里插入图片描述
PWM模式的频率由TIMx_ARR寄存器确定、
占空比由TIMx_CCRx寄存器确定
而TIMx_ARR的值由TIM_OCInitStructure.TIM_Period确定
TIM_OCInitStructure.TIM_Pulse确定

PWM输入捕获

输入捕获:通用定时器可以检测某个通道对应引脚上的电平边沿,并在电平边沿产生的时刻将当前定时器计数值写入捕获 / 比较寄存器中
用途:度量跳变沿之间的时间即某个电平脉冲的宽度

PWM输入捕获用途:测量连接在定时器某个输入通道上的PWM信号的频率和占空比
在这里插入图片描述
FLASH

在这里插入图片描述

SPI——通信总线

CPOI时钟极性,CPHA时钟相位。
时钟极性和时钟相位一共组成4种SPI通信时序。
1、CPOI = 0,CPHA = 1.
2、CPOI = 1,CPHA = 0.
3、CPOI = 0,CPHA = 1.
4、CPOI = 1,CPHA = 1.

CAN

can的重点在于can寄存器的初始化过程,而寄存器的初始化过程中波特率的设置、过滤器的设置、位时序的设置格外重要

1、波特率的计算
在这里插入图片描述
2、过滤器
过滤器有两种模式 屏蔽位模式和列表模式
过滤器的屏蔽功能的实现基于屏蔽寄存器的硬件设计
屏蔽寄存器被置位1的每一位都要求接收到的数据帧标识符段必须和对应的接收缓冲标识符位相同。

3、位时序

根据CAN物理层的要求,CAN总线的波特率与传输距离成反比。

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Utakuta/article/details/86603829
今日推荐