原理图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
kanghui zhao:
现在是有电流值了,但是电流值完全不对?
我发送 DAC8750_Out(0xFFFF)
用电流表测得电流才11.068ma?
然后发送0x7FFF 电流变成了3.129ma,大家帮忙看一下 还是哪里设置的有问题呀?
hanqian wu:
回复 kanghui zhao:
博主 问下 你之前 没有输出的问题是怎么解决的啊
Fei Yin2:
楼主是怎么解决没有输出的问题的?我这里也没输出