当前位置:首页 > DAC8760完全资料含STM32驱动源码
电压输出范围0-5V, 电流输出范围0-24mA,以下是PCB截图.
以下是在STM32F103上测试通过的程序,(72M系统时钟) //库文件名: dac8760.h #ifndef _dac8760_H #define _dac8760_H
#include \
//*********************************************************** //以下是使用到的SPI通讯端口,需要根据实际连接情况进行配置 #define DAC8760_GPIO GPIOA
#define DAC8760_RCC RCC_APB2Periph_GPIOA #define DAC8760_DIN GPIO_Pin_11 //写数据线 #define DAC8760_SCK GPIO_Pin_12 //时钟线 #define DAC8760_LAT GPIO_Pin_13 //使能线
#define DIN_1 GPIO_SetBits(DAC8760_GPIO, DAC8760_DIN) #define DIN_0 GPIO_ResetBits(DAC8760_GPIO, DAC8760_DIN)
#define SCK_1 GPIO_SetBits(DAC8760_GPIO, DAC8760_SCK) #define SCK_0 GPIO_ResetBits(DAC8760_GPIO, DAC8760_SCK)
#define LAT_1 GPIO_SetBits(DAC8760_GPIO, DAC8760_LAT) #define LAT_0 GPIO_ResetBits(DAC8760_GPIO, DAC8760_LAT)
//********************************************************** #define V_0_5 0x0000 //电压范围0-5V #define V_0_10 0x0001 //电压范围0-10V
#define I_4_20 ((u16)(1<<9)) //电流范围4-20mA #define I_0_20 ((u16)(2<<9)) //电流范围0-20mA #define I_0_24 ((u16)(3<<9)) //电流范围0-24mA
//**********************************************************
extern void DAC8760_Init(void); extern void DAC8760_Out(u16 dat); #endif
//文件名: dac8760.c
/****************************************************************************
DAC8760控制程序
****************************************************************************/ #include \#include \
//********************************************************** void DAC8760_Write(u8 add,u16 dat); void DAC8760_Config(void); //u16 DAC8760_Read(u16 add); void DAC8760_Init(void); void DAC8760_Out(u16 dat);
//**********************************************************
void DAC8760_Write(u8 add,u16 dat)//写寄存器 {
h_8bit=(dat>>8)&0x00FF;//取高8位数据 u8 i;
u8 h_8bit, l_8bit;
l_8bit=dat&0x00FF; //取低8位数据
}
SCK_1;
add<<=1;
if(add&0x80) { } else { }
DIN_0; DIN_1;
for(i=8;i>0;i--)//写8位地址 {
SCK_0; LAT_0;
} /*
for(i=8;i>0;i--)//写高8位数据 {
SCK_0;
}
if(h_8bit&0x80) { } else { } SCK_1;
h_8bit<<=1;
DIN_0; DIN_1;
for(i=8;i>0;i--)//写低8位数据 {
SCK_0;
}
if(l_8bit&0x80) { } else { } SCK_1;
l_8bit<<=1;
DIN_0; DIN_1;
LAT_1; DIN_1;
u16 DAC8760_Read(u16 add)//00 读状态寄存器, 01 读数据寄存器, 02 读控制寄存器, 0B 读配置寄存器 {
u16 i,dat;
共分享92篇相关文档