STM32 HAL库 模拟SPI驱动 ADS1118
首先是SPI相关的简介:

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

STM32CubeMx的GPIO输入输出的配置可以参考:

我所用到的四个输出口分别对应ADS1118上的三个SPI通信口。
SYNC:PA4
SCLK:PA5
DOUT:PA6
DIN:PA7
在具体的应用中可以自行修改头文件中的GPIO口以配合硬件完成工程。
ADS1118 datasheet
https://www.ti.com.cn/lit/gpn/ads1118
ADS1118 数据手册
https://www.ti.com.cn/cn/lit/gpn/ads1118


由上面的信息我们可以知道ADS1118是上升沿触发,此外它有两种通讯模式分别是一段32位和两段16位。



上面这张表是ADS1118中的16位寄存器各个位数对应的信息
Reserved : [0] 转换完成标志
NOP : [1:2] 无操作
PULL_UP_EN : [3] 上拉使能
TS_MODE : [4] 温度传感器模式
DR : [7:5] 数据传输速率
MODE : [8] 设备运行模式
PGA : [11:9] 可编程增益放大器配置
MUX : [14:12] 输入多路复用器配置
SS : [15] 操作状态或单次转换开始
user_ads1118.h
配合硬件修改对应的IO口
user_ads1118.c
24位从高到低通过移位的方法依次发出,发送这24位前我们需要先拉低CS,在发送完成后再拉高。
注意:由于是下降沿触发因此我们需要先移位再拉低时钟
使用示例
参考文献:
关于ADS1118的调试笔记(基于STM32):
https://blog.csdn.net/Hgrjtz/article/details/105664562
16-bit, 860-SPS, 4-channel, delta-sigma ADC with PGA, oscillator, VREF, temp sensor and SPI:
https://www.ti.com.cn/cn/lit/ds/symlink/ads1118.pdf