资源简介
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
- 上一篇:ArcGIS Engine 实现简单的投影转换
- 下一篇:51单片机读写flash
相关资源
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- E4A无障碍跨程序操作类库(带源码、
- labview魔方程序
- 程序员专用字体YaHei.Consolas.1.11b42517
- scratch3.0 源程序(说相声)
- 欧姆龙CP1系列单轴定位PLC程序.cxp
- SVR算法程序可运行
- labview编程软件滤波器以及编写程序设
- 电力系统潮流计算程序集合
- 仿知乎界面小程序源代码
- STM32蓝牙和串口程序
- elantech触控板驱动程序 v13.6.11 官方最
- 根据硬件ID和程序ID生成注册码
- 用python编写的移动彩信的发送程序
- TCL-S1916 ,1924交换机管理程序
- 51单片机PWM程序,占空比、周期可调整
- 嵌入式图形界面MiniGUI的示例程序9例
- 数字频率合成dds正弦波基于FPGA的DDS产
- 28335CAN调试程序
- 导线测量平差程序 很实用
- USB转串口驱动,FT232R驱动程序,最新
- 改进的BP神经网络算法
- 通风网络解算程序 fortran90
- 编写简单的RMI程序 多线程web 服务器
- 图论软件包(图论里的程序)
- A星算法_原理讲解_例子
- MFC程序-碰撞的小球
- 德卡D3读卡器测试程序驱动文件
- Auto CAD_LISP程序集
评论
共有 条评论