原理图RT所示:
应该没啥问题,代码是按照网上成功的朋友写的:
void DAC8750_Write(u8 add,u16 data)
{
u8 i;
u8 h_8bit,l_8bit;
h_8bit = (data>>8)&0x00FF;
l_8bit = data&0xFF;
LAT_0;
for(i=8;i>0;i--) //写8位地址;
{
SCK_0;
if(add&0x80)
{
DIN_1;
}
else
{
DIN_0;
}
SCK_1;
add<<=1;
}
for(i=8;i>0;i--) //写高8位数据;
{
SCK_0;
if(h_8bit&0x80)
{
DIN_1;
}
else
{
DIN_0;
}
SCK_1;
h_8bit <<=1;
}
for(i=8;i>0;i--) //写低8位数据;
{
SCK_0;
if(l_8bit&0x80)
{
DIN_1;
}
else
{
DIN_0;
}
SCK_1;
l_8bit <<=1;
}
LAT_1;
DIN_1;
}
void DAC8750_Config(void)
{
DAC8750_Write(0x56,0x0001); //复位所有寄存器;
DAC8750_Write(0x55,0x100d); //控制寄存器设置; 0001 0000 0000 1101
DAC8750_Write(0x57,0x0000); //配置寄存器设置;
// DAC8750_Write(0x01,0xfdff);
DAC8750_Write(0x01,0); //输出0;
}
void DAC8750_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(DAC8750_RCC, ENABLE);
GPIO_InitStructure.GPIO_Pin = DAC8750_DIN | DAC8750_LAT | DAC8750_SCK;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(DAC8750_GPIO,&GPIO_InitStructure);
DAC8750_Config();
}
void DAC8750_Out(u16 data)
{
DAC8750_Write(0x01,data);
}
但是现在没有电流输出?请问一下哪里有问题么?
REF-OUT引脚输出是5V