ADS8688 STM32 HAL库 驱动和使用方法

该文提供了ADS8688ADC芯片的STM32F4HAL库驱动代码,包括初始化、读写寄存器、手动及自动扫描模式等功能。在自动扫描模式下,驱动会依次读取所有通道的AD值,手动模式下则按需读取指定通道。代码适用于需要高精度ADC转换的项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用HAL库

先贴上ADS8688驱动

C文件ADS8688.c

#include "stm32f4xx_hal.h"
#include "stm32f4xx_hal_gpio.h"
#include "ads8688.h"
void ADS8688_IO_Init(void)	   //ADS8688 IO口初始化
{
  GPIO_InitTypeDef  GPIO_InitStructure;

  __HAL_RCC_GPIOC_CLK_ENABLE();	 //使能端口时钟
  __HAL_RCC_GPIOE_CLK_ENABLE();

  GPIO_InitStructure.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
  GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; 		 //推挽输出
  GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  HAL_GPIO_Init(GPIOE, &GPIO_InitStructure);

  GPIO_InitStructure.Pin = GPIO_PIN_13;
  GPIO_InitStructure.Mode = GPIO_MODE_INPUT;
  HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);

  DAISY_L;
  CS_H;
  RST_H;
  CLK_L;
  delay_ms(5);
}

void ADS8688_Init(uint8_t ch_en)	   //ADS8688初始化
{
  ADS8688_IO_Init();
  SOFT_RESET(); //复位
  delay_ms(25);
  Set_Auto_Scan_Sequence(ch_en);//使能通道
  ADS8688_WriteReg(CH_PD,~ch_en);//通道退出低功耗状态 通道上电
  delay_ms(50);
  while(ADS8688_ReadReg(AUTO_SEQ_EN)!=ch_en)//是否使能成功
    {
      Set_Auto_Scan_Sequence(ch_en);//使能通道
      ADS8688_WriteReg(CH_PD,~ch_en);//通道退出低功耗状态 通道上电
      delay_ms(50);
    }
}

uint8_t ADS8688_SPI_Read8Bit(void)
{
  uint8_t i=0;
  uint8_t read=0;
  for(i=0; i<8; i++)
    {
      read<<=1;
      CLK_H;
      delay_us(2);
      if(READ_SDO) read++;
      CLK_L;
      delay_us(2);
    }
  return read;
}

void ADS8688_SPI_Write8Bit(uint8_t data)
{
  uint8_t i=0;
  CS_L;
  for(i=0; i<8; i++)
    {
      if(data&0x80)	SDI_H;
      else	SDI_L;
      data<<=1;
      CLK_H;
      delay_us(2);
      CLK_L;
      delay_us(2);
    }
}

void ADS8688_WriteCmd(uint16_t cmd)//写ADS8688命令寄存器
{
  CS_L;
  ADS8688_SPI_Write8Bit(cmd>>8 & 0XFF);
  ADS8688_SPI_Write8Bit(cmd & 0XFF);
  ADS8688_SPI_Write8Bit(0X00);
  ADS8688_SPI_Write8Bit(0X0
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值