stm32cubemx使用之dma使用spi

何事误红尘 何事误红尘     2023-02-14     173

关键词:

一、概述

这篇文章简单记录下SPI的使用。

二、Pinout&Configuration

2.1 选择端口

选择要使用的SPI,对应的PIN脚会自动初始化为SPI模式:

查看原理图,可以看到实际使用的管脚与默认不符:

回到STM32Cube中,直接在使用的管脚上选择模式即可。根据需要命名管脚:

设置SPI参数:

2.2 开启DMA中断

进入DMA外设,添加DMA设置:

这里需要设置两个通道:

设置完成generate code即可。

三、测试SPI

进入keil编译测试,发现始终不为ready状态:

我选用的芯片是STM32G0B1RC,有另一工程使用了STM32G070CB。对比了cube中的设置,也直接对比了代码,完全一样的。这就很疑惑。

搜索了一下,不少博客提到DMA的channel是有指向性的,但图片多是出自F1系列参考手册:

在G0参考手册中并没有找到这个图。按照F1的图修改了channel,依然无效。

查看官方的demo例程,查看方法在STM32 HAL库手册获取和查阅方法以及查看官方例程一文中。发现demo中DMA设置如下

从这里看,channel使用还是与F1的图是相对应的。将demo管脚进行了修改,发现SPI可以正常运行。这解决起来就有希望了。

一定要先MX_DMA_Init,然后再MX_SPI1_Init。Cube生成初始化的顺序可能需要手动调整。

利用stm32cubemx之spi

现在我们继续使用STM32CubeMX来生成SPI工程。我们的硬件平台还是我们熟悉的STM32F103C8开发板。设置时钟树中的配置 现在打开SPI的设置如果想修改管脚的名字可以红色框中进行修改,修改后在生成代码将其来宏定义 现在来... 查看详情

笔记之stm32f0芯片spi_dma的使用(hal库)(代码片段)

...BT6(48M)RF芯片:SX1280(通过SPI通讯)环境:cubemx生成+MDKV5关于SPI的通常的应用很简单,特别是通过cubemx自动生成的代码,这里就不过多介绍,可自行百度搜索关于SPI的教程及相关资料这张图片是通过cu... 查看详情

stm32cubemx-spi+dma驱动2812灯带(代码片段)

文章目录STM32CubeMX-SPI+DMA驱动2812灯带一、初始准备1.硬件平台二、操作步骤1.CubeMX生成初始化代码1.1建立工程(通用步骤)1.2配置SPI和DMA外设1.3生成代码(通用步骤)2.编写代码3.程序下载,观察现象(通... 查看详情

stm32cubemx使用之dma方式使用adcadc使用遇到的问题(代码片段)

目录一、概述二、Pinout&Configuration2.1选择端口2.2开启DMA中断三、测试ADC四、遇到的问题4.1采集到其他通道的值继续4.1的问题4.2STM32ADC没有输入电压时,采集结果不为0一、概述本文记录下ADC的使用过程,主要是后续使用&#... 查看详情

stm32之cubemx

目录1.HAL常见函数介绍2.使用3.配置SystemCore-----配置系统核心DMA----直接存储器访问GPIO-----[GPIO使用详细解释](https://www.cnblogs.com/schips/p/12424933.html)IWGD---独立看门狗NVIC----中断优先级RCC-----配置外部时钟源BYPASSClockSource:旁路时钟源Crysta... 查看详情

stm32cubemx使用之adc

目录一、概述二、Pinout&Configuration2.1选择端口2.2开启DMA中断三、测试ADC一、概述本文记录下ADC的使用过程,主要是后续使用,能有个参考。芯片:STM32G0B1RCT6二、Pinout&Configuration2.1选择端口2.2开启DMA中断三、测试AD... 查看详情

stm32cubemx——硬件spi驱动七针0.96寸oled(代码片段)

1、使用工具STM32Cubemx版本6.0.1Keil版本5.31ST-LinkSTM32F407VE核心板0.96寸七针OLED接线方式如下SPI_MOSO不需要连接2.STM32Cubemx配置1.配置时钟源时钟树等2.打开任一SPI,并开启DMA将SPI的SCK与OLED的D0连接,MOSI与OLED的D1连接2.配置普通IO... 查看详情

stm32 SPI + DMA

...】:【发布时间】:2017-04-1413:16:57【问题描述】:我尝试使用DMA通道通过SPI发送数据。当我在没有DMA的情况下发送时,一切都很好,但是使用DMA是错误的。当我调试我的程序时,SPIDR寄存器始终为0。我想一直使用dma循环模式来发... 查看详情

stm32cubemx之fatfs+spi驱动w25qxx(代码片段)

文章目录1W25Q128简介2STM32CubeMX配置SPI2.1配置SPI2.2配置CS片选引脚3添加W25Q128驱动4将W25Q128挂载到FATFS4.1STM32CubeMX配置FATFS4.2在工程中为FATFS适配W25Q1284.2.1DSTATUSUSER_initialize(BYTEpdrv)4.2.2DSTATUSUSER_status(BYTEpdrv)4.2.3USE 查看详情

stm32cubemx第八篇之dma(代码片段)

...的HAL库的版本为:STM32Cube_FW_F4_V1.25.0本实验使用的STM32CubeMX版本为:6.1.1该 查看详情

stm32cubemx之硬件spi驱动w25q64

STM32CubeMx之硬件SPI驱动W25Q641.SPI简介   SPI是串行外设接口(SerialPeripheralInterface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,... 查看详情

stm32cubemx|42-使用dma2d加速显存数据传输(代码片段)

...在上一篇文章中讲述了如何配置LTDC驱动RGB屏幕:STM32CubeMX|41-使用LTDC驱动TFT-LCD屏幕(RGB屏)。本节中我们接着上一节的实验,讲述如何使用DMA2D实现打点、画线、填充等函数,只需要单层全屏即可,修改LTDC... 查看详情

stm32cubemx-配置spi驱动max31865读取铂电阻温度(代码片段)

文章目录STM32CubeMX-配置SPI驱动MAX31865读取铂电阻温度一、初始准备1.硬件平台2.软件平台3.原理图接线二、操作步骤1.CubeMX生成初始化代码1.1建立工程(通用步骤)1.2开启串口1.3配置SPI1.4配置GPIO1.5生成代码(通用步骤... 查看详情

是否可以在 STM32F3 上使用 DMA 通过 SPI 传输无限数据?

】是否可以在STM32F3上使用DMA通过SPI传输无限数据?【英文标题】:IstherepossibletostreaminfintedataoverSPIusingDMAonSTM32F3?【发布时间】:2020-04-1107:37:54【问题描述】:我正在开发一种基于新协议的RF调制解调器,该协议具有在一帧中流式... 查看详情

stm32cubemx生成fatfs基于sd

...32f407vet步骤一:选择调试接口步骤二:配置SDIO(由于stm32cubemx的fatfs_sd的模板是基于DMA,所以此处使用DMA模式)SDIO中开启对传入传出分别打开DMA打开SDIO的全局中断此处仅测试基于SD的fatfs,所以未对中断优先级进行调整步骤三:... 查看详情

stm32f103vet6基于stm32cubemx创建串口中断+dma不定长数据接收(代码片段)

STM32F103VET6基于STM32CubeMX创建串口中断+DMA不定长数据接收✨STM32CubeMX工程配置过程演示:📍此工程参考《STM32CubeMX|STM32使用HAL库DMA+空闲中断实现串口不定长数据接收》📓DMA参数介绍🎉DMA传输方式🌿传输... 查看详情

带有 STM32F7 的 SPI 从模式和循环 DMA

...【发布时间】:2021-09-1505:13:03【问题描述】:我目前正在使用以SPI(主模式)进行通信的外围设备。本机发送一个27位数据包,每个接收8个27位数据包。在我的STM32中,我在从机模式(全双工)下使用SPI协议,我使用27位缓冲存储... 查看详情

stm32cubemx(07)定时器+dac+dma输出阶梯波实验。(代码片段)

...前言一、DMA是什么?1.1DMA传输的要素和特点二、STM32CubeMX配置2.1DAC配置2.2定时器配置2.3DMA配置三、软件部分四、测试结果总结前言由定时器6溢出信号作为触发信号,控制DAC1(PA4)循环输出阶梯波形信号,DAC1需要的数据... 查看详情