• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: 其他
  • 标签: DAC8563  

资源简介

DAC8563的程序源码,使用STM32驱动

资源截图

代码片段和文件信息

#include “stm32f10x.h“
#include “dac.h“
#include “timer.h“
#include 

uint16_t DAC_Data[2] = {00};


void DelayUS(uint16_t delay_time)
{
unsigned long j;
while(delay_time--)
{
j=12;
while(j--);
}
}

void DelayMS(uint16_t delay_time)
{
while(delay_time--)
DelayUS(1030);
}
//======================================
//
// ADC管脚配置
//
//======================================
void DAC_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOD ENABLE); // LED   


// 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_Init(SPI_ADS_MOSI_PORT &GPIO_InitStructure);
    // CS1
    GPIO_InitStructure.GPIO_Pin = SPI_ADS_CS1_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(SPI_ADS_CS1_PORT &GPIO_InitStructure);
    // CS2
    GPIO_InitStructure.GPIO_Pin = SPI_ADS_CS2_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(SPI_ADS_CS2_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);
    // CS4
    GPIO_InitStructure.GPIO_Pin = SPI_ADS_CS4_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(SPI_ADS_CS4_PORT &GPIO_InitStructure);

SPI_ADS_CS1(1);  // 其他芯片片选
SPI_ADS_CS2(1);  
SPI_ADS_CS3(1);  
SPI_ADS_CS4(1);  // DAC片选
}


//=====================================
//
// 写8位数据
//
//=====================================
void SPI_ADS_SendByte(uint8_t byte)
{
  int i;
  
  for(i=0; i<8; i++)
  {
SPI_ADS_CLK(1);
DelayUS(4);
if((byte & 0x80)>>7)
     SPI_ADS_MOSI(1);
else
SPI_ADS_MOSI(0);
SPI_ADS_CLK(0);
DelayUS(4);
byte <<= 1;
  }
}

//=====================================
//
// 写16位数据
//
//=====================================
void SPI_ADS_SendHalfWord(uint16_t byte)
{
  int i;

  for(i=0; i<16; i++)
  {
SPI_ADS_CLK(1);
DelayUS(4);
if((byte & 0x8000)>>15)
     SPI_ADS_MOSI(1);
else
SPI_ADS_MOSI(0);
SPI_ADS_CLK(0);
DelayUS(4);
byte <<= 1;
  }
}


//=====================================
//
// 写寄存器
//
//=====================================
void DAC_WR_REG(uint8_t cmd_byte uint16_t data_byte)
{
// SPI_ADS_CLK(1);
// SPI_ADS_CLK(0);
SPI_ADS_CS4(0);  
    SPI_ADS_SendByte(cmd_byte);
SPI_ADS_SendHalfWord(data_byte);
SPI_ADS_CS4(1);  
DelayUS(4);
}

//=============================================
//
// 设置并更新DAC输出
//
// 参数:data_a为A路输出,data_b为B路输出
//
//=============================================
void DAC_Output1(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3368  2013-04-28 10:09  dac.h

     文件       4821  2013-05-28 18:42  dac.c

----------- ---------  ---------- -----  ----

                 8189                    2


评论

共有 条评论

相关资源