×
单片机 > 单片机程序设计 > 详情

基于STM32的ADS8339 驱动

发布时间:2020-05-26 发布时间:
|

环境:STM32F103RC,主频 72MHz(外部晶振)或64MHz(HSI)


普通IO口模拟spi


代码实现:


// ADS8339.c

 

/******************************************************

函数名称:Read16BitsData

函数描述:IO口模拟spi读16位数据

Calls:

Called by: GetOnce_ADCData

输入参数:无

返回值:读到的16位数据

******************************************************/

static uint16_t Read16BitsData(void)

{

uint32_t status = 0;

uint16_t data = 0;


ADS8339_CLK_H;

ADS8339_CLK_L;

 

for (int number = 0; number < 16; number++)

{

ADS8339_CLK_H;

 

status = ADS8339_SD0_STATUS();

 

ADS8339_CLK_L;


if(status)

{

data |= 1;

}


data <<= 1;              

}

 

  return data;

}

 

/******************************************************

函数名称:GetOnce_ADCData

函数描述:按照ADS8339时序图进行IO口模拟spi读16位数据

Calls:

Called by: 

输入参数:无

返回值:读到的16位数据

******************************************************/

static uint16_t GetOnce_ADCData(void)

{

uint16_t getValue = 0;


ADS8339_CS_H;

ADS8339_CS_L; // ADC转换开始

while(ADS8339_SD0_STATUS() != GPIO_PIN_RESET); // 一定要确保调用该函数的中断优先级最高(即TIM2中断优先级),否则会出现死机情况    

getValue = Read16BitsData();

ADS8339_CS_H;

ADS8339_CS_L;


return getValue;

}


关键字:ADS8339  驱动 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32单片机的复用端口初始化的步骤及方法