首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
dma专题
STM32 ADC+DMA导致写FLASH失败
最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu
阅读更多...
学习硬件测试05:NTC(ADC)+正弦波(DAC)+DMA(ADC+DAC)(P73、P76、P78)
文章以下内容全部为硬件相关知识,鲜有软件知识,并且记的是自己需要的部分,大家可能看不明白。 一、NTC(ADC) 1.1实验现象 本实验用 NTC 采集温度,数码管实时显示温度数据(整数),左下角 USB 小串口每隔 1S 打印温度信息。 1.2硬件电路 NTC 电阻是一个模拟温度传感器,随着温度的升高,电阻值逐渐减小。电路简单介绍如下: 电源滤波电容在 25℃ 室温下 NTC 电
阅读更多...
物联网——DMA+AD多通道
DMA简介 存储器映像 某些数据在运行时不会发生变化,则设置为常量,存在Flash存储器中,节省运行内存的空间 DMA结构图 DMA访问权限高于cpu 结构要素 软件触发源:存储器到存储器传输完成后,计数器清零 硬件触发源:ADC、定时器、串口 重写计数器时,需关闭DMA DMA请求 数据宽度与对齐 目标宽度小于传输带宽:高位补零,反之,舍弃高位 数据转运与D
阅读更多...
STM32F103调试DMA+PWM 实现占空比逐渐增加的软启效果
实现效果:DMA+PWM 实现PWM输出时,从低电平到输出占空比逐渐增加再到保持高电平的效果,达到控制 MOS 功率开关软启的效果。 1.配置时钟 2.TIM 的 PWM 功能配置 选择、配置 TIM 注意:选择 TIM 支持 DMA 控制输出 PWM 功能的通道,有的TIM通道支持PWM 但不支持PWM注意选择。 PWM参数设置 Counter Period :
阅读更多...
DMA引起数组越界
今遇到了内存越界问题,很隐蔽 EXTERN __IO uint16_t RegularConvData_Tab[2*3]; 定义的DMA搬运工的buffer大小为6 实际上当时红线标注,改为了12,导致后续的变量被赋值 只要此值小于定义的buffer的大小就可以了 这个越界是非常不注意的问题,编译器不报错
阅读更多...
OpenGL DMA接口
Opengl的DMA版本接口主要作用是解决以前访问opengl对象, 必须先将对象绑定到当前状态机下才能访问的问题,这会导致驱动层需要去频繁的进行对象的引用查找。 比如以前非DMA版本的接口操作顶点数据 glGenBuffers(1, &vbo);glBindBuffer(GL_ARRAY_BUFFER, vbo);glBufferData(GL_ARRAY_BUFFER, sizeof
阅读更多...
FPGA PCIE驱动,windriver驱动 wdf驱动 windows linux PCIE DMA驱动 支持win10 server2016
一:相关介绍 本人一直从事fpga pcie dma驱动开发,可以开发windwos Linux 原生驱动 wdf 或者基于第三方库的windriver。支持win10 win server。提供稳定的驱动库,或者源码,开发者可以不关心底层驱动直接使用封装的库。 二:PCIE 驱动开发的稳定性和高效性: 本驱动库均已经进行了实际交付使用,通过了严格的jun
阅读更多...
XILINX平台下LINUX DMA驱动调研
专栏目录 高质量文章导航-持续更新中-CSDN博客 基础概念 VA:virtual address称为虚拟地址, PA:physical address称为物理地址。 CPU通过地址来访问内存中的单元,如果CPU没有MMU,或者有MMU但没有启动,那么CPU内核在取指令或者访问内存时发出的地址(此时必须是物理地址,假如是虚拟地址,那么当前的动作无效)将直接传到CPU芯片的外部地址引脚上,
阅读更多...
【STM32 Blue Pill编程】-ADC数据采样(轮询、中断和DMA模式)
ADC数据采样(轮询、中断和DMA模式) 文章目录 ADC数据采样(轮询、中断和DMA模式)1、硬件准备及接线2、ADC轮询模式2.1 轮询模式配置2.2 代码实现 3、ADC中断模式3.1 中断模式配置3.2 代码实现 4、ADC的DMA模式4.1 DMA模式配置4.2 代码实现 在本文中,我们将介绍如何使用 ADC 并使用 STM32CubeIDE 和 HAL 库读取模拟输
阅读更多...
STM32-HAL库串口DMA空闲中断的正确使用方式及SBUS信号解析
概述 STM32微控制器广泛用于嵌入式系统,其HAL(Hardware Abstraction Layer)库简化了硬件访问,提高了开发效率。在STM32中,使用DMA(Direct Memory Access)进行串口通信可以显著提高数据传输效率,减少CPU负载。本文将介绍如何在STM32中正确使用串口DMA空闲中断,并解析SBUS信号。 串口DMA空闲中断 在STM32中,串口DMA传输
阅读更多...
STM32F10XX中SPI的DMA发送数据
参考资料: http://blog.csdn.net/jdh99/article/details/7603029 http://www.openedv.com/posts/list/3159.htm 上面提到的两篇博文比较详细深刻的说明了DMA的工作方式以及SPI的DMA传输方式的特点。结合对Stm32F103VET6中SPI的DMA传输方式的配置和学习谈谈感受,在看下面的内容之前请
阅读更多...
集成电路学习:什么是DMA直接内存访问
DMA:直接内存访问 DMA,全称Direct Memory Access,即直接内存访问,是一种用于在计算机系统中实现数据传输的技术。以下是对DMA的详细解释: 一、DMA定义与原理 DMA技术允许外围设备(如磁盘驱动器、网卡、显卡等)直接访问计算机的内存,而不需要经过CPU的干预。这种技术通过专门的DMA控制器来管理,DMA控制器可以在设备和内
阅读更多...
DMA驱动程序编写
一. DMA的引入 假设我们让2440来拷贝一段数据, 从内存的src拷贝到dst,拷贝的长度为size. char *src = AAA; char *dst = BBB; int i; for (i = 0; i <size; i++) dst[i] = src[i]; 这写出来的代码是让cpu来执行数据的拷贝工作, 显然,cpu在执行这个过程中,同一
阅读更多...
RDMA技术详解——DMA和RDMA概念
1.1 DMA DMA(Direct Memory Access,直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与。如下图所示 红线部分为传统内存访问,需要通过CPU进行数据copy来移动数据,通过CPU将内存中的Buffer1移动到Buffer2中。在DMA模式:可以同DMA Engine之间通过硬件将数据从Buffe
阅读更多...
八、2 DMA数据转运 DMA函数介绍
把数组定义在Flash中,可以节省SRAM的空间 去掉const不会影响程序运行,但会占用SRAM的空间 1、步骤 (1)RCC开启DMAD的时钟 (2)调用DMA_Init,初始化参数 (3)调用DMA_Cmd,通道使能 若使用硬件触发,要调用×××_DMACmd开启对应外设的触发信号的输出; 若需要DMA的中断,就调用DMA_ITConfig,开启中断输出,再在N
阅读更多...
DMA简述与使用实例
之后要学:SPI / IIC+DMA 学习的这位up主的视频:全网最清楚的DMA讲解,三种搬运模式三个例子讲清楚(STM32教程基于HAL库和CUBEIDE)_哔哩哔哩_bilibili 目录 01-基本信息 1-概述 2-方向 3-模式 正常模式 轮询模式 4-地址自增 02-实例一:串口读取陀螺仪 01-基本信息 1-概述 DMA能将外设/内存与外设/内存间建
阅读更多...
【STM32 Blue Pill编程】-UART数据发送与接收(DMA模式)
UART数据发送与接收(DMA模式) 文章目录 UART数据发送与接收(DMA模式)1、DMA介绍2、STM32的UART端口3、硬件准备及接线4、UART配置5、代码实现 在本文中,我们将展示如何使用STM32 Blue Pill UART 通过直接内存访问(DMA)来发送和接收数据。这一过程而无需涉及 CPU。 在 DMA 模式下,数据可以从 UART RX 数据寄存器传输到
阅读更多...
RT-Thread Studio中HAL库开发教程:UART的DMA应用
RT-Thread Studio是一个集成开发环境,它提供了丰富的工具和库来简化嵌入式开发。在RT-Thread Studio中使用HAL库开发UART通信时,可以利用DMA(直接内存访问)来提高数据传输的效率。本文将详细介绍如何在RT-Thread Studio中配置和使用UART的DMA功能。 1. 准备工作 1.1 环境搭建 确保你已经安装了RT-Thread Studio,并且已经创
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第7章 DMA
7.1 DMA工作原理 7.1.1 DMA介绍 DMA (Direct Memory Access,直接存储器存取),是一种可以大大减轻 CPU 工作量的数据存取方式,因而被广泛地使用。早在 8086 的应用中就已经有 Intel 的 8237 这种典型的 DMA 控制器,而 STM32 的 DMA 则是以类似外设的形式添加到 Cortex 内核之外的。 在硬件系统中,主要由 CPU(内核)
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第7章DMA(HAL库)
标准库3.5实现: 《嵌入式-STM32开发指南》第二部分 基础篇 - 第7章 DMA 7.1 DMA工作原理 7.1.1 DMA介绍 DMA (Direct Memory Access,直接存储器存取),是一种可以大大减轻 CPU 工作量的数据存取方式,DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输,因而被广泛地使用。早在 8
阅读更多...
第二十七篇:Windows驱动中的PCI, DMA, ISR, DPC, ScatterGater, MapRegsiter, CommonBuffer, ConfigSpace
最近有些人问我PCI设备驱动的问题, 和他们交流过后, 我建议他们先看一看<<The Windows NT Device Driver Book>>这本书, 个人感觉, 这本书写得非常连贯流畅. PCI设备驱动基本包括了PCI的资源获取, 配置空间的读写, 中断的处理, 中断后半部在DPC中的处理. 同时, 也必须了解DMA, ScatterGater, MapRegister, Com
阅读更多...
STM32学习记录-07-DMA直接存储器存取
1 DMA简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源 12个独立可配置的通道: DMA1(7个通道), DMA2(5个通道) 每个通道都支持软件触发和特定的硬件触发 STM32F103C8T6 DMA资源:DMA1(7个通道) 2 存储器映像 ROM只读
阅读更多...
【STM32】RTT-Studio中HAL库开发教程五:UART的DMA应用
文章目录 一、简介1.关于DMA2.DMA使用场景3.DMA控制结构4.IDLE空闲中断5.实现方法 二、RTT配置三、串口收发流程四、完整代码五、测试验证 一、简介 1.关于DMA DMA(Direct Memory Access,直接存储器访问) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于CPU的大量中断负载。否则,CPU需要从来源把每一
阅读更多...
STM32中的DMA
概念 全称是Direct Memory Access,中文意思为直接存储器访问。 DMA可用于实现外设与存储器之间或者存储器与存储器之间数据传输的高效性。之所以称为高效,是因为DMA传输数据移动过程无需CPU直接操作,这样节省的 CPU 资源就可供其它操作使用。从硬件层面来理解,DMA就好像是RAM与I/O设备间数据传输的通路,外设与存储器之间或者存储器与存储器之间可以直接在这条通路上进行数据传
阅读更多...
【RTT-Studio】详细使用教程十三:UART的DMA 接收及轮询发送
文章目录 一、简介二、RTT配置三、使用信号量接收四、使用消息队列接收五、测试验证 一、简介 串口是指数据一位一位地顺序传送,其特点是通讯线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位的传送,按位顺序进行,
阅读更多...
STM32程序串口DMA初始化时进入hardfault_handler()
低级错误导致: 原来自己的工程里串口用的中断方式, 从官方历程复制串口的DMA程序到自己的工程里, 结果一执行到DMA初始化,就hardfault_handler(),反复重启。 初始化函数里调用了HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)这
阅读更多...