• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: 其他
  • 标签: ADS8328  程序  

资源简介

AD芯片ADS8328程序,调试通过的源码(主芯片STM32),采用的模拟SPI通讯,分享给大家。

资源截图

代码片段和文件信息

#include “stm32f10x.h“
#include “spi_ad.h“
#include 

u16 AD_Num = 0; // 当前每个通道采样次数
u8 Sample_OK = 0; // 一轮采样完成标志
u8 VGA=0; // 通道号

/* @@@@@@@@@@@@@@@@@@@@@@@@@@@
//
// STM32内部ADC配置
//
// @@@@@@@@@@@@@@@@@@@@@@@@@@@
*/

void DelayUS(uint16_t delay_time)
{
uint16_t i=0j;
  for(i=0; i for(j=255; j>0; j--);

}

void DelayMS(uint16_t delay_time)
{
uint16_t i=0j;
  for(i=0; i {
  for(j=10000; j>0; j--);
}
}

//======================================
//
// ADC管脚配置
//
//======================================
void ADC_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC ENABLE); // LED   | RCC_APB2Periph_AFIO
    RCC_APB2PeriphClockCmd(SPI_ADS_CLK_CLK ENABLE);
    RCC_APB2PeriphClockCmd(SPI_ADS_CS3_CLK ENABLE);
    RCC_APB2PeriphClockCmd(SPI_ADS_CONVST_CLK ENABLE);

// LED -- PC0
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC &GPIO_InitStructure);

// CLK
    GPIO_InitStructure.GPIO_Pin = SPI_ADS_CLK_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(SPI_ADS_CLK_PORT &GPIO_InitStructure);
// MOSI
    GPIO_InitStructure.GPIO_Pin =  SPI_ADS_MOSI_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(SPI_ADS_MOSI_PORT &GPIO_InitStructure);
// MISO
    GPIO_InitStructure.GPIO_Pin = SPI_ADS_MISO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;   // GPIO_Mode_IPU
GPIO_Init(SPI_ADS_MISO_PORT &GPIO_InitStructure);
    // CS3
    GPIO_InitStructure.GPIO_Pin = SPI_ADS_CS3_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(SPI_ADS_CS3_PORT &GPIO_InitStructure);
    // CONVST
    GPIO_InitStructure.GPIO_Pin = SPI_ADS_CONVST_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(SPI_ADS_CONVST_PORT &GPIO_InitStructure);


SPI_ADS_CS3(1);
SPI_ADS_CONVST(1);
DelayMS(500);
}



uint8_t SPI_ADS_Send4Bits(uint8_t byte)
{
  uint8_t num = 0;
  int i;
  byte &= 0x0F;
  for(i=0; i<4; i++)
  {
num <<= 1;
SPI_ADS_CLK_HIGH;
if((byte & 0x08)>>3)
     SPI_ADS_MOSI(1);
else
SPI_ADS_MOSI(0);
if(READ_SPI_ADS_RX) num++;
// DelayUS(5);
SPI_ADS_CLK_LOW;
// DelayUS(5);
byte <<= 1;
  }

//  DelayUS(5);
  return(num);
}



uint16_t SPI_ADS_Send12Bits(uint16_t byte)
{
  uint16_t num = 0;
  int i=12;
  
  while(i--)
  {
num <<= 1;
if((byte & 0x800)>>11)
     SPI_ADS_MOSI(1);
else
SPI_ADS_MOSI(0);
SPI_ADS_CLK_HIGH;
if(READ_SPI_ADS_RX) num++;
// DelayUS(5);
SPI_ADS_CLK_LOW;
// DelayUS(5);
byte <<= 1;
  }

//  DelayUS(5);
  return(num);
}

uint16_t SPI_ADS_S

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5722  2013-05-28 19:15  spi_ad.c

     文件       3622  2013-04-02 19:50  spi_ad.h

----------- ---------  ---------- -----  ----

                 9344                    2


评论

共有 条评论