【STM32】HAL库开发教程(七)—SPI使用

前言

不必害怕未知,无需恐惧犯错,做一个Creator!

本文主要介绍STM32_HAL库开发中SPI通信的使用。

一、开发步骤

1.STM32CubeMX配置

  1. 在左侧引脚配置处勾选SPI进行配置
  2. 在SPI模式处勾选“Full-Duplex”选择全双工模式
  3. 在SPI参数配置处进行参数配置:SPI时钟、SPI数据参数以及勾选”NVIC Settings”使能中断

在这里插入图片描述

2.SPI读写函数

uint8_t SPI1_ReadWriteByte(uint8_t TxData)//发送一个字节,并从寄存器返回一个字节
{
	uint8_t Rxdata;
	HAL_SPI_TransmitReceive(&hspi1, &TxData, &Rxdata, 1, 1000);       
 	return Rxdata;          		    
}

3.通信读功能函数

void SPI_Read(uint8_t* pBuffer, uint32_t ReadAddr, uint16_t NumByteToRead)   
{ 
	uint16_t i; 
	
	CS(0);
	SPI1_ReadWriteByte((uint8_t)((ReadAddr) >> 16));   //·写入目标地址   
	SPI1_ReadWriteByte((uint8_t)((ReadAddr) >> 8));   
	SPI1_ReadWriteByte((uint8_t)ReadAddr);   
	for (i = 0; i < NumByteToRead; i++)
	{ 
		pBuffer[i]=SPI1_ReadWriteByte(0XFF);    //循环读入字节数据  
	}	
	CS(1);
} 

4.通信写功能函数

void SPI _Write (uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite)
{
 	uint16_t i; 
 
    CS(0);
    SPI1_ReadWriteByte((uint8_t)((WriteAddr) >> 16)); //写入的目标地址   
    SPI1_ReadWriteByte((uint8_t)((WriteAddr) >> 8));   
    SPI1_ReadWriteByte((uint8_t)WriteAddr);   
    for (i = 0; i < NumByteToWrite; i++)
	SPI1_ReadWriteByte(pBuffer[i]);//循环写入字节数据  
	CS(1);
}

二、主要函数接口

1.HAL库SPI传送接收函数

HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
HAL库封装的SPI读取接口函数。
参数:SPI号、目标数据地址、接收数据地址、数据长度、超时时间。

2.SPI读功能函数

void SPI_Read(uint8_t* pBuffer, uint32_t ReadAddr, uint16_t NumByteToRead)
从目标地址读取指定长度的数据
参数:数据地址、目标读取地址、读取数据长度。

3.SPI写功能函数

void SPI _Write (uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite)

往目标地址写入指定长度的数据
参数:数据地址、目标写入地址、写入数据长度


总结

本项目中SPI的使用主要可以归纳为:
1.SPI读写函数封装
2.调用 SPI_Read()功能函数读取目标地址数据。
3.调用SPI _Write()功能函数写入数据至目标地址


提示:若有错误不足,欢迎批评指正。该系列文章仅供参考,欢迎互相学习交流。

感谢你的阅读,期待你的关注收藏点赞!

  • 26
    点赞
  • 167
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
STM32 HAL(Hardware Abstraction Layer)是一种为STM32微控制器开发的库和框架。它提供了一种简化的方法来进行硬件配置、中断管理、和外设控制,使开发者能够更加方便地为STM32微控制器编写代码。 对于初学者来说,学习STM32 HAL可能会有一些挑战。这时,STM32 HAL教程PDF可以为初学者提供很好的学习资料。这份教程通常包含以下内容: 1. 简介:教程会介绍STM32 HAL的概念、特点以及使用它的好处。 2. 环境设置:教程会指导你如何配置开发环境,包括安装STM32CubeIDE和相关的驱动程序。 3. 硬件配置:教程会详细介绍如何进行硬件配置,包括引脚配置、时钟设置以及外设初始化等。 4. 中断管理:教程会解释如何配置和管理中断,包括配置中断优先级和中断处理函数的编写。 5. 外设控制:教程会介绍如何使用STM32 HAL库控制外设,如GPIO、USART、SPI、I2C等。它将告诉你如何进行初始化、发送和接收数据等操作。 6. 示例程序:教程通常会提供一些示例程序,以帮助你更好地理解和运用所学的知识。 7. 常见问题解答:教程可能会包含一些常见问题和解答,帮助你解决在学习和开发过程中遇到的一些困惑。 通过学习STM32 HAL教程PDF,你将能够更好地理解STM32 HAL的基本知识和使用方法,为你之后的STM32开发打下坚实的基础。同时,这份教程还可以作为日后参考的手册,供你在实际工程中查找和解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值