資源簡介
AD芯片ADS8328程序,調(diào)試通過的源碼(主芯片STM32),采用的模擬SPI通訊,分享給大家。

代碼片段和文件信息
#include?“stm32f10x.h“
#include?“spi_ad.h“
#include?
u16?AD_Num?=?0; //?當(dāng)前每個通道采樣次數(shù)
u8?Sample_OK?=?0; //?一輪采樣完成標(biāo)志
u8?VGA=0; //?通道號
/* @@@@@@@@@@@@@@@@@@@@@@@@@@@
//
// STM32內(nèi)部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
評論
共有 條評論