本文基于stm32f103的ADS8361两通道模拟转换驱动程序
附件包含文件:
ADS8361.C
ADS8361.H
hw_config.c
hw_config.h
ADS8361.C文件为AD的模式选择引脚的初始化程序
/****************************AD_MODE_CONFIG******************************************
M0--M1--A0--TWO CHANNEL FOUR--CHANNEL OPERATION--DATA ON SERIAL OUTPUTS CHANNELS CONVERTED
0 0 0 Two-Channel A and B A0 and B0
0 0 1 Two-Channel A and B A1 and B1
0 1 0 Two-Channel A Only A0 and B0
0 1 1 Two-Channel A Only A1 and B1
1 0 X Four-Channel A and B Sequential
1 1 X Four-Channel A Only Sequential
********************************************************************************/
hw_config.c文件为初始化SPI和定时器5。
下面 介绍在定时器中采集两通道数据如下:
uint16_t adc_out[4];
uint8_t adc_out_buffer[4];
adc_out[0]=SPIx_ReadWriteByte(0x8000);
adc_out[1]=SPIx_ReadWriteByte(0x0000);
adc_out[2]=SPIx_ReadWriteByte(0x8000);
adc_out[3]=SPIx_ReadWriteByte(0x0000);
后根据时序图,对采集到的数据进行处理
/**************A0通道数据*******************/
adc_out_buffer[0]=(adc_out[0]>>5)&0x00ff;
adc_out_buffer[1]=((adc_out[0]<<3)+(adc_out[1]>>13))&0x00ff;
/**************B0通道数据*******************/
adc_out_buffer[2]=(adc_out[2]>>5)&0x00ff;
adc_out_buffer[3]=((adc_out[2]<<3)+(adc_out[3]>>13))&0x00ff;