DMA(DirectMemoryAccess)是STM32微控制器中的一种重要外设,可以实现高效的数据传输,减轻CPU的负担。DMA的工作原理是通过独立的通道将数据从外设直接传输到内存,或者从内存传输到外设,而无需CPU的干预。本文将深入介绍STM32中DMA的工作原理和配置方法,并提供一个简单的示例代码来演示DMA的用法。✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进❤欢迎关注我的知乎:对error视而不见代码获取、问题探讨及文章转载可私信。 ☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!👇点击领取更多详细资料DMA的工作原理:
串行外设接口SPI(SerialPeripheralInterface)是由Motorola公司开发的一种通用数据总线。 在某些芯片上,SPI接口可以配置为支持SPI协议或者支持I2S音频协议。SPI接口默认工作在SPI方式,可以通过软件把功能从SPI模式切换到I2S模式,具体需参考操作手册 串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。接口还能以多主配置方式工作。它可用于多种用途,包括使用一条双向数据线的双线单工同步传输,还可使用CRC校验的可靠通信。 I2S
初学者学习51还是STM32在嵌入式系统领域,51和STM32是两种常见的单片机架构。对于初学者来说,选择学习哪种架构可能会成为一个难题。本文将对初学者学习51和STM32进行比较,以帮助读者做出明智的选择。1.51架构51架构是指Intel8051系列单片机。由于其历史悠久,许多教材和示例代码都基于51架构。以下是51架构的一些特点:简单易懂:51架构拥有简单的指令集和寄存器结构,因此适合初学者快速上手和理解。广泛支持:51架构的单片机在市场上非常常见,可以轻松找到廉价和广泛使用的开发板、调试工具和教学资源。庞大的生态系统:51架构已经有了庞大的开发社区,相应的问题解答和技术支持也很容易找到
前言趁你们不注意,我突然更!!目录前言一、直流减速电机与霍尔编码器1.1、编码器介绍与选择1.2、编码器参数1.3、编码器测速原理1.3.1、方向判断1.3.2、速度获取二、STM32cubeMX库配置编码器模式2.1、连线分析2.2、cubeMX设置2.2.1、cubeMX初始化2.2.2、高级定时器编码器模式(CH1,CH2通道)2.2.3、串口DMA2.2.4、PWM输出2.2.5、GPIO控制电机方向2.2.5、LED2.2.6、基本定时器2.2.6、配置中断优先级三、离散PID简介3.1、位置式3.2、增量式四、代码及其讲解后记一、直流减速电机与霍尔编码器1.1、编码器介绍与选择是一
一、GPIO基本资料 GPIO为通用输入输出口,可配置8种输入输出模式,引脚电平为0~3.3V(部分可容忍5V)。 输出模式下可控制端口输出高低电平,以驱动LED,控制蜂鸣器,模拟通信协议输出时序(I2C,SPI)等。 输入模式下可读取端口的高低电平或电压,以读取按键输入,外接模块电平信号输入,ADC电压采集,模拟通信协议接收数据等。二、GPIO结构 图一 图二图三 如图一,STM32中,所有GPIO挂载在APB2总线上。按GPIOA,GPIOB,GPIOC…命名,每GPIO外设16引脚(0~15/PX0~PX15)。 如图二,寄存器是特殊的储存器,内
目录一、何为最小系统?二、最小系统电路设计1.电源(1)各种名词解释(2)为什么会有VDD_1_2_3区分?(3)MircoUSB(4)5v->3.3v滤波电路(5)电源指示灯2.复位电路(1)什么是复位(2)复位引脚和电路3.晶振模块(1)复位引脚(2)时钟和时钟树(3)为什么不直接使用内部8M时钟源?(4)8MHz主晶振介绍(5)为什么选择32.768KHzRTC晶振?(6)晶振原理图4.程序下载口(1)JTAG下载:(2)SWD下载:(3)串口下载:(4)程序下载口原理图编辑5.启动方式(1)三种启动方式:(2)启动原理图一、何为最小系统?最小系统板就是一个最精简的电路,精简到只能维持
gcc-arm-none-eabi工具链+MinGW+gitbash/powershell实现win10下stm32程序编译1它们之间的关系1.1gcc-arm-none-eabi工具链gcc-arm-none-eabi是一个用于嵌入式系统开发的工具链,它提供了一套用于编译、汇编和链接ARMCortex-M架构的代码的工具和库,如gcc,ar等。说白了,.c文件就是通过gcc-arm-none-eabi编译成了可执行文件1.2MinGWMinGW(MinimalistGNUforWindows)是一个在Windows环境下使用GNU工具集进行软件开发的开发环境。它提供了一系列的开发工具和库,使
前言 本文以初学者角度切入,详细剖析按键检测原理,实现按键短按、短按抬起、首次长按、持续长按次数、长按抬起功能;目录前言波形图分析抖动原因为什么要消抖如何消抖原理图分析程序设计思路代码实践按键配置按键检测实验结果留下反思波形图分析 如图为按键按下→释放过程的波形图可以从图中看到,实际波形在按下与释放时都有一段杂乱的波形,期间存在着多次高电平与低电平,这就是抖动。抖动原因 机械原因:由于按键内部构造常为弹簧、金属弹片等接触器件,当按键按下或释放时,这些器件的反弹、震动等原因导致瞬时的接触和断开,从而产生抖动; 电气原因:电路噪声、环境干扰、电容充放电等因素
文章目录前言一、HAL库的本质1.1HAL库的本质是操作寄存器1.2自己实现HAL_GPIO_WritePin寄存器通过寄存器的操作点灯代码概况Portbitset/resetregister寄存器总结前言在嵌入式系统开发中,HAL(HardwareAbstractionLayer)库是一个重要的概念,它提供了一个抽象层,使开发者可以更容易地编写可移植的代码,而不必担心底层硬件的细节。STM32CubeMX是一款由STMicroelectronics提供的工具,用于生成STM32微控制器的初始化代码,其中包括了HAL库的使用。HAL库的本质与HAL库源码分析HAL库的本质是一个由供应商提供的软
目录一、内部Flash简介二、内部Flash构成1.主存储器2.系统存储区3.选项字节三、内部Flash写入过程1.解锁2.页擦除3.写入数据四、工程空间分布某工程的ROM存储器分布映像:1.程序ROM的加载与执行空间2.ROM空间分布表一、内部Flash简介 STM32芯片内部有一个Flash存储器,主要用于存储代码,我们在电脑上编写好应用程序后,使用下载器把编译后的代码文件烧录到该内部Flash中。由于Flash存储器的内容在掉电后不会丢失,芯片重新上电复位后,内核可从内部Flash中加载代码并运行。由于访问内部Flash的速度要比外部的SPI-Flash快得多,所以在紧急状