avatar
文章
59
标签
17
课程
19

主页
标签
课程
关于
風
搜索
主页
标签
课程
关于

STM32

STM32的SPI控制器
发表于2024-04-21|更新于2024-09-16
[施工中..] SPI控制器SPI控制器原理 上图展示了STM32F4系列的SPI控制器框图。由波特率发生器产生时间信号,逻辑控制器进行MOSI和MISO控制,并产生片选信号。同时由Tx Rx两个缓冲寄存器+移位寄存器构成发送模块。控制寄存器主要有SPI_CR1,SPI_CR2,BR。 发送流程 数据写入Tx Buffer Tx Buffer内的的数据填入移位寄存器 移位寄存器逐个bit发至MOSI线 发送完毕,SPI_SR TXE寄存器置位 接收流程 数据写入移位寄存器 移位寄存器写入 Rx Buffer 接收完成,SPI_SR EXNE置位 读取Rx Buffer内的内容 片选信号在SPI_CR1寄存器中的SSI信号即是该控制器内的片选信号发生器。可通过配置SPI_CR1 SSM寄存器来决定该信号是否对外输出。以此实现不同的片选效果。在NSS对外输出时,配置SPI_CR1 SSOE寄存器又可定义两种不同的硬件管理模式 STM32的SPI控制器支持三种片选模式: 软件管理:(SSM=1)外部NSS引脚空闲,可复用其他功能。自定义GPIO通过写高低电平实现片选 硬件管理(输出使能 ...
STM32核心板设计
发表于2024-04-07|更新于2024-09-16
HSE时钟电路——皮尔斯(Pierce)震荡器简介单片机上常见的HSE时钟——一个无源晶振配合两个电容的时钟电路,就是使用的皮尔斯振荡电路,其完整电路如下图,由两个电容 ($C_1\&C_2$) ,一个晶体振荡器 ($X_1$),一个反馈电阻 ($R_1$) 和一个反相放大器 ($U_1$) 组成。$U_1$和$R_1$一般集成在芯片内部,因此这就是在STM32中选择HSE(外部晶体振荡器)时钟时,有两个引脚 RCC_OSCIN 和 RCC_OSC_OUT 被占用的原因。 石英晶振的等效电路 在分析电路如何震荡之前,需要先了解石英的一个物理特性。 压电效应:当对压电材料施以压力时,能产生电;反过来,当给压电材料通电,能产生形变;因此,在石英晶体的两端施加持续变化的交流电压,即可让石英音叉形变“震荡”起来,物理的形变又回反过来改变电压,从某种意义上来说这也是一个储能元件。在计算上可以把晶振等效为一个RLC电路,如下图所示。其中$C_0$是石英晶体两脚间产生的寄生电容(一般取3-5pF),其余部分是晶振本身的等效R ...
STM32的UART通信(Register)
发表于2024-02-05|更新于2024-09-16
基本工作原理(F4系列)F4的USART模块支持可编程字长、自定义波特率、单线半双工模式(RX,TX使用一条线,半双工收发)、唤醒MCU、可编程的停止位长度、可启用/禁用/设置模式的就校验位。其硬件模块如下 F4系列的USART模块还支持IRDA协议和LIN协议,这里不会详细介绍 USART硬件系统可以被拆分成如下几个重要部分: 控制初始化工作部分 使能USART:由CR1寄存器UE位(bit13)进行控制,使能后USART模块才会开始工作,不用时失能减少功耗; 设置数据字长:F4系列支持8bit和9bit两种长度,通过对CR1寄存器M位(bit12)配置进行控制; 设置波特率:波特率生成器负责生成控制发送速率的时钟,由USART_BRR寄存器控制。 设置停止位长度:由CR2寄存器中bit[12:13]控制,支持0.5 / 1 / 1.5 / 2四种停止位长度 设置奇偶校验:CR1寄存器PCE位(bit10)控制。 控制收发工作部分 DR(数据寄存器):用于寄存要发送的数据或者收到的数据。发送时,该寄存器内的值会被逐个读取至TDR,并通过移位寄存器逐个bit发送;接受时,RDR ...
STM32的中断(Register)
发表于2024-02-02|更新于2024-05-07
NVIC不同于普通单片机的软中断(单一入口,软件识别flag)或硬中断(不同入口)会在多个中断同时发生时挂起后发生的,STM32支持对中断的优先级进行编程,在中断中触发中断。用于管理这一优先级的系统被称为NVIC。 NVIC:Nested vectoredinterrupt controller,嵌套向量中断控制器,属于内核 (M3/4/7)。NVIC支持256个中断(16个内核中断+240个外部中断),内核支持256个中断优先级。ST公司把256个优先级裁切为了16个优先级(所有系列都是如此)。对于F407xx系列芯片,有10个内核中断,82个外部中断。 STM32的中断优先级又分为几类:抢占式优先级、响应式优先级、自然优先级。在STM32中,优先级设置的数值越小,其优先级越高 抢占式优先级:当两个中断同时发生时,优先执行抢占式优先级高的中断,可形成中断嵌套(在执行某低优先级中断中被高优先级再次中断,先执行高的再回来继续执行低的) 响应式优先级:当两个同抢占式优先级的中断同时发生时,优先响应 响应式优先级 高的中断,另一个被挂起。响应式优先级无法打断执行过程中的中断。 自然优先级 ...
STM32——HAL库
发表于2024-01-24|更新于2024-09-16
GPIO控制GPIO口寄存器的封装和总线时钟123456789101112131415161718192021222324252627282930313233//GPIO_TypeDef 结构体如下:typedef struct{ __IO uint32_t MODER; /*!<模式寄存器, Address offset: 0x00 */ __IO uint32_t OTYPER; /*!<输出数据类型寄存器, Address offset: 0x04 */ __IO uint32_t OSPEEDR; /*!<输出速度寄存器, Address offset: 0x08 */ __IO uint32_t PUPDR; /*!<上拉下拉电阻选择寄存器, Address offset: 0x0C */ __IO uint32_t IDR; /*!<输入数据寄存器, Ad ...
1
©2024 - 2025 By 栞风
转载请注明出处,博客内容接入查重,请勿直接用于大作业/实验|ू・ω・` )
框架 Hexo|主题 Butterfly
搜索
数据库加载中