|
本帖最后由 s290717997 于 2015-6-10 14:56 编辑
请问各位工程师,我DAC8311按照附件中的电路连接,,后面有OP2277,为了调试将OP2277模块断开了,
程序思路为使能引脚为低电平,然后在时钟下降沿器件数据保持稳定,请问DAC8311为什么没有输出?
程序:
DACOut(LPC_GPIO2,8192,RighOut_Flag);
void DACOut(LPC_GPIO_TypeDef* GPIOx,uint16_t DAValue,FlagStatus Driver_Flag) //´®¿ÚÊý¾ÝдÈë
{
uint16_t i;
uint32_t DA_DIN,DA_CS,DA_SCLK;
uint16_t speed_max;//speed_min;
//DAValue <<= 4; //leon +
DAValue &= 0x3FFF; //leon 0x3FF->
LPC_GPIO0->FIOSET |= (0x01<<6); //leon +
if(!Driver_Flag)
{
DA_DIN=LeftDA_DIN;
DA_SCLK=LeftDA_SCLK;
DA_CS=LeftDA_CS;
speed_max=Speed_LeftMax;
}
else
{
DA_DIN=RightDA_DIN;
DA_SCLK=RightDA_SCLK;
DA_CS=RightDA_CS;
speed_max=Speed_RightMax;
}
if(DAValue>speed_max)
{
DAValue=speed_max;
}
//GPIOx->FIOCLR |= DA_CS; //ƬѡDAоƬ
GPIOx->FIOSET |= DA_CS;
//GPIOx->FIOCLR |= DA_SCLK; //ÔÚÒÔÏÂ12¸öʱÖÓÖÜÆÚÄÚ,ÿµ±ÔÚÉÏÉýÑصÄ
Delay_10ns(10); //Êý¾Ý±»Ëø´æ,ÐγÉDAÊä³ö¡£ÔÚÇ°10¸öʱÖÓ
GPIOx->FIOCLR |= DA_CS;
for(i = 0; i < 16; i++) //ÄÚÊäÈëµÄÊÇ10λDAÊý¾Ý£¬ºóÁ½¸öʱÖÓÖÜÆÚ //leon 12->
{ //ΪÌî³ä×Ö½Ú¡£
if (DAValue & 0x2000) //leon 0x200->
{
GPIOx->FIOSET |= DA_DIN;
}
else
{
GPIOx->FIOCLR |= DA_DIN;
}
DAValue <<= 1;
GPIOx->FIOSET |= DA_SCLK;
Delay_10ns(6);
GPIOx->FIOCLR |= DA_SCLK;
Delay_10ns(6);
}
GPIOx->FIOSET |= DA_SCLK; // ²ÅÓÐЧ
GPIOx->FIOSET |= DA_CS; // CSµÄÉÏÉýÑغÍϽµÑØÖ»ÓÐÔÚclkΪµÍµÄʱºò
Delay_10ns(10);
//GPIOx->FIOCLR |= DA_SCLK;
//LPC_GPIO0->FIOCLR |= (0x01<<6); //leon+
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|