STM32 HAL庫(kù) 模擬SPI驅(qū)動(dòng) ADS1118
首先是SPI相關(guān)的簡(jiǎn)介:

? ? 然后是用STM32CubeMx初始化模擬SPI的引腳:

????STM32CubeMx的GPIO輸入輸出的配置可以參考:

? ??我所用到的四個(gè)輸出口分別對(duì)應(yīng)ADS1118上的三個(gè)SPI通信口。
????SYNC:PA4
????SCLK:PA5
????DOUT:PA6
????DIN:PA7
????在具體的應(yīng)用中可以自行修改頭文件中的GPIO口以配合硬件完成工程。
? ? ADS1118?datasheet
https://www.ti.com.cn/lit/gpn/ads1118
????ADS1118 數(shù)據(jù)手冊(cè)
https://www.ti.com.cn/cn/lit/gpn/ads1118


????????由上面的信息我們可以知道ADS1118是上升沿觸發(fā),此外它有兩種通訊模式分別是一段32位和兩段16位。



上面這張表是ADS1118中的16位寄存器各個(gè)位數(shù)對(duì)應(yīng)的信息
Reserved?: ?[0] 轉(zhuǎn)換完成標(biāo)志
NOP :?[1:2] 無操作
PULL_UP_EN :?[3] 上拉使能
TS_MODE :?[4] 溫度傳感器模式
DR : ?[7:5] 數(shù)據(jù)傳輸速率
MODE : ?[8] 設(shè)備運(yùn)行模式
PGA : ?[11:9] 可編程增益放大器配置
MUX : ?[14:12] 輸入多路復(fù)用器配置
?SS : ?[15] 操作狀態(tài)或單次轉(zhuǎn)換開始
user_ads1118.h
配合硬件修改對(duì)應(yīng)的IO口
user_ads1118.c
????24位從高到低通過移位的方法依次發(fā)出,發(fā)送這24位前我們需要先拉低CS,在發(fā)送完成后再拉高。
????注意:由于是下降沿觸發(fā)因此我們需要先移位再拉低時(shí)鐘
使用示例
參考文獻(xiàn):
關(guān)于ADS1118的調(diào)試筆記(基于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