利用stm32cubemx之spi

陌鉎こ城sHi 陌鉎こ城sHi     2022-09-16     414

关键词:

现在我们继续使用STM32CubeMX来生成SPI工程。我们的硬件平台还是我们熟悉的STM32F103C8开发板。

设置时钟树中的配置

 

现在打开SPI的设置

如果想修改管脚的名字可以红色框中进行修改,修改后在生成代码将其来宏定义

 现在来看看我们生成工程中代码

在 stm32f1xx_hal_spi.h中可以看到spi的操作函数。分别对应轮询,中断和DMA三种控制方式。我将先介绍轮询方式。

HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi);

void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi);
void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi);

 

stm32cubemx之硬件spi驱动w25q64

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

STM32 cubeMX:使用中断触发SPI DMA中断

】STM32cubeMX:使用中断触发SPIDMA中断【英文标题】:STM32cubeMX:triggeringSPIDMAinterruptusinginterrupt【发布时间】:2019-05-2816:52:33【问题描述】:我目前正在练习使用SPI+DMA将数据发送到SPI显示器。显示的数据顺序如下:[pullCSlow]->[pullD/C... 查看详情

stm32cubemx使用之dma使用spi

目录一、概述二、Pinout&Configuration2.1选择端口2.2开启DMA中断三、测试SPI一、概述这篇文章简单记录下SPI的使用。二、Pinout&Configuration2.1选择端口选择要使用的SPI,对应的PIN脚会自动初始化为SPI模式:查看原理图,... 查看详情

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

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

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

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

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... 查看详情

利用stm32cubemx快速创建点灯带调试输出工程案例(代码片段)

利用STM32CubeMX快速创建点灯带调试输出工程案例✨这里以创建芯片STM32F103C8T6工程为例。🌿关于STM32CubeMX软件安装这里就不做介绍了。📍STM32CubeMX软件下载:https://www.st.com/zh/development-tools/stm32cubemx.html#get-software📑配 查看详情

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

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

stm32f103vet6基于stm32cubemx利用exti外部中断测量pwm频率(代码片段)

STM32F103VET6基于STM32CubeMX利用EXTI外部中断测量PWM频率📌相关篇《STM32G070RBT6基于STM32CubeMX配置定时器PWM功能案例》📍《STM32F103VET6基于STM32CubeMX创建EXTI外部中断工程》🌼本篇利用上面两篇示例综合,利用STM32F103VET6引... 查看详情

stm32cubemx之串口配置

STM32CubeMX之串口配置  串口通信是一种设备间非常常用的​​串行通信​​方式,以比特位的形式发送或接收数据,电子工程师经常使用这种方式来调试数据。本章节我们将学习串口发送和接收数据。STM32F103C8开发板通过串口... 查看详情

stm32之cubemx

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

stm32cubemx之freertos(代码片段)

文章目录1STM32CubeMX参数配置及其说明1.1FreeRTOSMode1.2Configparameters1.2.1Kernelsetting1.2.2Memorymanagementsetting1.2.3Hookfunctionrelateddefinitions1.3创建任务Task和队列Queue1.3.1创建任务Task1.3.2创建队列Queue1.4FreeRTOSHeap 查看详情

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... 查看详情

lvgl移植stm32f1基于stm32cubemx配置硬件spi驱动1.8寸tftst7735s跑lvgl图形demo(代码片段)

【LVGL移植】STM32F1基于STM32CubeMX配置硬件SPI驱动1.8寸TFTST7735S屏幕跑LVGL图形demo🎬运行LVGL按键组件demo✨基于STM32CubeMX配置工程是因为方便移植,只要是STM32芯片,拿到我的这个工程源码就可以根据自己的stm32芯片,自... 查看详情

stm32cubemx之外部中断

STM32CubeMX之外部中断1.中断简介​​   中断,是指处理机处理程序运行中出现的紧急事件的整个过程。程序运行过程中,系统外部、系统内部或者现行程序本身若出现紧急事件,处理机立即中止现行程序的运行,自动... 查看详情

stm32f1基于stm32cubemx配置硬件spi驱动nrf24l01数据收发(代码片段)

STM32F1基于STM32CubeMX配置硬件SPI驱动nRF24L01数据收发📌相关参考《STM32L051C8T6HAL库+nRF24L01收发案例(硬件SPI通讯)》📍《HAL库驱动NRF24L01实现数据传输》🌿串口数据收发显示:🌿工程默认配置的是STM32F103VC单片机... 查看详情

stm32cubemx之adc采集烟雾值

STM32CubeMX之ADC采集烟雾值1.ADC简介   STM32中硬件本身自带ADC外设,ADC精度为12位。ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间... 查看详情

stm32f1基于stm32cubemx配置硬件spi驱动1.8寸tftlcd128x160st7735s屏幕(代码片段)

STM32F1基于STM32CubeMX配置硬件SPI驱动1.8寸TFTLCD128X160ST7735S屏幕📌相关篇《【STM32CubeIDE】STM32F103硬件SPI驱动1.8寸TFTLCD128X160ST7735S屏幕》✨驱动效果就不做演示了,和上面的相关篇一样,主要是为了方便使用MDKKeil开发的使用... 查看详情