基于STM32F103的ADS8361,两通道模拟转换驱动程序
本文基于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;
支持下
Hi Rong,
非常感谢你的分享,是一篇很精彩的技术贴
没来得及细看你的程序,请问你应该是用MCU的MOSI作为ADC的RD引脚吧?
另外,你的SPI好像也只有16位的数据长度,你是采用什么方法确保SPI 连续发送数据的呢?
Best wishes
Martin Li
是用MOSI作为AD的RD引脚
连续发是根据程序需要把如下放在调用函数里或定时中断里的,
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);
SPI是16位,每次采集一个点是实际发送的是两个十六位数据,
adc_out[0]=SPIx_ReadWriteByte(0x8000);
adc_out[1]=SPIx_ReadWriteByte(0x0000);
adc_out[2]=SPIx_ReadWriteByte(0x8000);
adc_out[3]=SPIx_ReadWriteByte(0x0000);
然后下面进行数据处理
比如一个点的确切数据应该是
adc_out_buffer[0]=(adc_out[0]>>5)&0x00ff;
adc_out_buffer[1]=((adc_out[0]<<3)+(adc_out[1]>>13))&0x00ff;
如果要判断是什么通道需要在前面添加判断adc_out_buffer[0]的第15位是0还是1
需将您的分享作品的链接,在此活动帖下跟帖贴出,才能给您评奖。
http://bbs.21ic.com/icview-709594-1-1.html
您好,请问可以把您的STM32控制ADS8361的全部程序给我一份吗?邮箱957673760@qq.com 有偿也可以