资源简介
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
相关资源
- 基于MC9S12XS128的LCD12864驱动程序
- 交通灯设计VHDL程序代码
- STM8S 模拟I2C程序 源码
- 神经网络算法源程序
- 百度地图抓取程序可将百度电子地图
- stm8s003与ds1307时钟芯片程序
- FPGA 4X4矩阵键盘VHDL程序
- STEP7中的程序块解锁工具
- 实时动态外网IP显示小程序
- NSGA-2源程序可以运行
- FT5X06 触摸屏驱动程序,直接替换即可
- 微信小程序背单词
- qt聊天室程序
- 求迷宫的最短路径:现要求设计一个
- 电子闹钟程序设计(接口技术/汇编语
- 微信小程序 空气质量查询
- 手写板绘图程序
- 无线遥控解码编码程序315MHzPT2240PT22
- S7-300编写的除尘程序冶钢工程有中文
- 扫雷qmlc程序
- wiegand维根协议驱动程序
- DSP_AD采样程序
- GSA算法源程序
- 功能强大美观的画图程序,可画各种
- 微信小程序 幸运大转盘改良版
- central pattern generator程序
- S7-300恒压给水程序
- 中石油加油机的控制程序C51
- qt做的小程序-鼠标事件
- CATIA焊点输入输出EXCEL程序
评论
共有 条评论