## 介绍
本例程使用STM32F103C6T6微控制器,通过模拟SPI协议读取24位模数转换器ADC芯片AD7791的数据。使用STM32CUBEIDE开发环境以及HAL库。
## AD7791简介
AD7791是一款低功耗24位Σ Δ型模数转换器ADC,适用于低频测量应用,并提供50Hz/60Hz同步抑制。
## 代码实现
本例程的代码实现参考了CSDN博文《STM32模拟SPI协议获取24位模数转换器ADC芯片AD7791电压采样数据》。在实现过程中,我们使用了STM32的HAL库。
代码块:
// 初始化SPI总线
HAL_SPI_Init(&hspi1);
// 写入AD7791的配置寄存器,使其处于单端输入、内部放大器、50Hz同步抑制的工作模式下
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);
HAL_SPI_Transmit(&hspi1, &CFG_Register, 1, 100);
HAL_SPI_Transmit(&hspi1, &CFG_RegisterValue, 1, 100);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET);
// 读取AD7791的数据寄存器
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);
HAL_SPI_Transmit(&hspi1, &Data_Register, 1, 100);
HAL_SPI_Receive(&hspi1, &Data_Buffer, 3, 100);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET);
暂无评论