STM32标准库和HAL库SPI发送数据的区别-即SPI_I2S_SendData()和HAL_SPI_Transmit()互换

1、标准库SPI初始化

这是标准库的SPI初始化配置

2、HAL库SPI初始化

这是HAL库函数的SPI初始化配置

可以看出,基本一直,除了 基本的io口配置区别,其他主要的读写函数不用动的。

3、SPI发送函数_替换对比

c 复制代码
/* SPI写入一个字节 */
void SPI_WByte(uint8_t TxData)
{
//	/* 通过外设SPIx发送一个数据 */
//	SPI_I2S_SendData(OLED_SPI, TxData);

//	/* 检查指定的SPI标志位设置与否:发送缓存空标志位*/
//	while (SPI_I2S_GetFlagStatus(OLED_SPI, SPI_I2S_FLAG_TXE) == RESET);
	HAL_SPI_Transmit(&hspi1,&TxData,1,1000);
}

4、SPI收发函数_替换对比

对于收发函数,可以直接替换的代码如下:

发送时,可以通过检测SPI_SR中的TXE位,当数据寄存器里有数据时,TXE位是0,当数据全部从数据寄存器的发送缓冲区传输到移位寄存器时TXE位被置1,这时候可以再往数据寄存器里写入数据

接收时 ,可以通过检测SPI_SR中的RXNE位,当数据寄存器里有数据时,RXNE位是0,当数据全部从数据寄存器的接收缓冲区传输到移位寄存器时RXNE位被置1,这时候可以从数据寄存器里读出数据

在使用HAL库时,不必这么麻烦,HAL库都帮我们封装好了,直接使用下面两个SPI的发送和接收函数接口。

相关推荐
WD1372980155719 小时前
WD5030L,超高集成度、大电流输出、高效率低发热,限流24V转12V,6A
stm32·单片机·嵌入式硬件·51单片机
~光~~21 小时前
【xv6学习】L0_环境配置
单片机·嵌入式硬件·学习
映翰通网络1 天前
TI开发板上的边缘AI工具链:先认清OpenCV、GStreamer和TIDL
人工智能·嵌入式硬件·opencv·计算机视觉·ti
论迹复利1 天前
Smith 圆图实战——从原理到 L 型匹配网络设计
嵌入式硬件·无线
论迹复利1 天前
平台安全架构(PSA)概述——从方法论到工程实践
嵌入式硬件·安全·psa
sramdram1 天前
基于MCU微控制器的冰箱压缩机系统解决方案
单片机·嵌入式硬件·mcu·mcu微控制器
爱就是恒久忍耐1 天前
使用VSCode开发STM32 (通用版本)
ide·vscode·stm32
小黄蚁1 天前
使用状态机实现按键消抖
stm32·单片机
集芯微电科技有限公司1 天前
16V/5A高效率COT模式同步降压转换器集成高低功率MOSFET
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
巴巴媛6661 天前
5. 智能小车
单片机·嵌入式硬件