欢迎光临散文网 会员登陆 & 注册

STM32 HAL库 模拟SPI

2022-08-06 23:45 作者:僚机Wingplane  | 我要投稿

    在使用单片机的过程中,SPI总线是常用的一种通信方式,与此类似的还有 I²C 和 UART 。在实际的工程开发的工程中硬件工程师可能会无法满足硬件SPI的要求,此外部分芯片的 SPI 通信协议是24位,不是常见的8位或16位,为此我们需要使用IO口来模拟SPI。

    SPI的简介:

    SPI 有四线和三线两种,本文以常见的三线 SPI 为例

   用 STM32CubeMx 初始化模拟 SPI 的引脚:

    STM32CubeMx的GPIO的配置可以参考:

    所用到的三个IO口分别对应SPI总线的串行数据线和串行时钟线。

    CS:PC5

    SCLK:PC4

    SDI / SDO:PC1

user_spi.h

user_spi.c

SDO_IN:更改一个 SDO 脚为输入

SDO_OUT:更改一个 SDO 脚为输出

SPI_Write_OneByte:使用 SPI 写一个字节

SPI_Read_OneByte:使用 SPI 读一个字节

WriteReg:通过调用 SPI_Write_OneByte 函数使用 SPI 向外传输3个字节24位的数据(实际应用案例:2个地址字节,在这个地址字节下写入1个字节的数据)

ReadReg:通过调用 SPI_Write_OneByte 函数和SPI_Read_OneByte函数使用 SPI 传输2个字节16位的数据,接受1个字节8位的数据(实际应用案例:2个地址字节,等待从从机接受1个字节的数据)

参考文献:

STM32不完全手册_标准库版本_V3.3 

STM32 HAL库 模拟SPI的评论 (共 条)

分享到微博请遵守国家法律