首页 > 其他分享 >STM32 SPI接口 DMA normal 和circual区别

STM32 SPI接口 DMA normal 和circual区别

时间:2024-02-19 10:11:56浏览次数:33  
标签:DMA normal 发送 STM32 数据 CPU circular

 

DMA有normal和circular两种模式。

circular模式:

就调用这个函数一次就可以了,DMA一直开启,一帧数据发送完毕之后里面发送下一帧,中间没有停顿。这样确实是快了,也释放了CPU,各路的数据采集因为缺少了等待串口发送的时间,所以就间接提高的了数据更新速率。但有个致命缺陷:数据采集和数据发送各玩各的,就是他俩时序对不上,数据采集到一半,一个完整帧数据只更新了一部分,就被DMA挪走了,这样就把新旧数据一块发送出去了,circular模式的DMA才不管数据有没有完整更新,只管发。

normal模式:

就是每发一次就开启一次DMA,这样就可以等一帧数据更新完毕之后,再开启DMA发送,同样不会占用CPU,在DMA发送数据的时间里CPU可以开启下一轮的数据采集。

标签:DMA,normal,发送,STM32,数据,CPU,circular
From: https://www.cnblogs.com/dylancao/p/18020491

相关文章

  • 01. 初识STM32
    一、什么是STM32  STM32,从字面上来理解,ST是意法半导体,M是Microelectronics的缩写,32表示32位,合起来理解,STM32就是指ST公司开发的32位微控制器。  STM32主要分两大块,MCU和MPU,MCU就是我们常见的STM32微控制器,不能跑Linux,而MPU则是ST在19年才推出的微......
  • stm32芯片的SPI接口调试总结之轮询模式
    一概念1组成SPI系统可直接与各个厂家生产的多种标准外围器件接口,它只需4条线:串行时钟线(SCK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)和低电平有效的从机选择线(NSS)。(1)MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数......
  • STM32之红外遥控信号自学习实现
    一、序言很早前就想实现这个红外遥控自学习的这个实验,用于来自己控制房子里如空调等红外遥控设备的自动化,NEC的标准到具体的产品上可能就被厂家定义为不一样了,所以自学习就应该是接收到什么就发送什么,不用管内容是什么!二、硬件实现原理由上述原理图可知,当IE为高电平时发送红外......
  • 【STM32】成功创建Keil MDK工程的条件(可对照查缺补漏)
    文中所有文件夹数量和名称没有限制,按自己理解建也OK。首先:确保编码格式正确(UTF-8),可在小扳手那里更改。安装对应芯片器件支持包。建启动文件夹Start(记得在Keil项目界面添加同名分组导入文件),启动文件的最后字母为型号缩写。STM32F1系列的具体芯片型号缩写参照下表:建......
  • STM32系统开发--基于LL库的多串口Printf使用
    MDK:Keilv5.38/STM32CubeMXMCU:STM32G431CBUx外设:串口USART1、2使用多串口Printf,基于C语言中的函数可变参数,首先要包含头文件"stdarg.h"。基于LL库,编写多串口打印函数:/************************************************函数名称:USART_Printf功能:多串口Printf函数......
  • stm32 esp8266测试问题原因记录
    现象:连上WIFI但发送数据失败 原因:WIFI网络延时过大,或者程序设置的等待超时时间过小解法:换个网络延时小的WIFI连,或者增加程序等待超时的时间 现象:连不上WIFI 原因:esp8266_mqtt_init()中的的延迟过长,测试4S不行,要2S解法:将4秒延时改回2S1int32_tesp8266_mqtt_init(v......
  • STM32超声波模块问题
    先写没问题用法,有问题的语法就不示范voidSr04_Init(void){GPIO_InitTypeDefGPIO_InitStruct;TIM_TimeBaseInitTypeDefTIM_TimeBaseInitStruct;//打开GPIO组时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);RCC_AHB1PeriphClockCm......
  • CF741E Arpa’s abnormal DNA and Mehrdad’s deep interest
    我永远喜欢数据结构。感觉\(\color{maroon}*3400\)虚高,但是第一眼不会做/ng。太菜了。CF洛谷给出两个字符串\(s,t\),记\(r_i\)表示在\(s_i\)和\(s_{i+1}\)插入\(t\)得到的字符串。若\(i=0\)表示在开头插入,若\(i=|s|\)表示在结尾插入。形式化的,\(r_i=\ov......
  • STM32打印掺杂乱码
    问题:STM32打印掺杂乱码 原因:时钟太快了(不要以为是电磁干扰,接触不良,硬件出问题,多想想在发现这种情况之前做了什么操作)问题:为什么之前好好的,现在不行了原因:安装CubeMX导致的,具体原因不清楚解法:根据外部晶振调对时钟频率 效果: ......
  • ADI CCES ADSPI2156X UART DMA模式中,获取当前存到第几个数CurrXCount, 重新从头开始接
    关键的一些寄存器关键的寄存器pUARTDstDMARegstypedefstruct{uint32_tnTmrDevNum;/*TimerassosiatedtotheselectedUARTforAutobaud*/ADI_UART_TypeDef*constpUARTRegs;/*Pointertobaseadd......