STM32尺度库和HAL库SPI发送数据的区别-即SPI_I2S_SendData()和HAL_SPI_Transmit()交换

[复制链接]
发表于 2025-9-22 03:24:11 | 显示全部楼层 |阅读模式
1、尺度库SPI初始化

这是尺度库的SPI初始化设置

2、HAL库SPI初始化

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

可以看出,基本不停,除了 基本的io口设置区别,其他主要的读写函数不用动的。
3、SPI发送函数_更换对比
  1. /* SPI写入一个字节 */
  2. void SPI_WByte(uint8_t TxData)
  3. {
  4. //        /* 通过外设SPIx发送一个数据 */
  5. //        SPI_I2S_SendData(OLED_SPI, TxData);
  6. //        /* 检查指定的SPI标志位设置与否:发送缓存空标志位*/
  7. //        while (SPI_I2S_GetFlagStatus(OLED_SPI, SPI_I2S_FLAG_TXE) == RESET);
  8.         HAL_SPI_Transmit(&hspi1,&TxData,1,1000);
  9. }
复制代码
4、SPI收发函数_更换对比

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

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

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表