因仑“3+1”工程特种兵精英论坛

标题: 新手新ID,技术水帖(2):DAC7512,在stm32f103zet6中的使用 [打印本页]

作者: 谭力源    时间: 2016-4-27 21:07
标题: 新手新ID,技术水帖(2):DAC7512,在stm32f103zet6中的使用
DAC7512,数控电源中使用度很高的一块12位DAC芯片。
在实际中,我选了是6引脚的贴片
分别是VCC,GND,DIN,/SYNC,CLK,DOUT,六个引脚。参考电压等于VCC。
贴上stm32下的驱动代码:
void DAchange(u16 dat)
{
    u8  DA;
        u8  i;
        u8  j;
        u8  DAL;
        u8  DAH;
        if(dat>4095)
                {
                        dat=0;
                }  
    DAL=dat%256;
        DAH=dat/256;
        GPIO_ResetBits(GPIO_DAC,DS1_PIN);  //sync置低
           GPIO_ResetBits(GPIO_DAC,DS2_PIN);  //clk置低电平
        i=0;
        while(i<2)
           {
                 if(i<1)
                        {
                          DA=DAH;
                        }
                 else
                        {
                          DA=DAL;
                        }
                 for(j=8;j>0;j--)
                         {
                          if(DA>=0x80)
                                {
                                        GPIO_SetBits(GPIO_DAC,DS3_PIN);         //din传输高电平信号
                                        GPIO_SetBits(GPIO_DAC,DS2_PIN);           //clk置高电平
                                        GPIO_ResetBits(GPIO_DAC,DS2_PIN);  //clk置低电平
                                 }
                          else
                                {
                                   GPIO_ResetBits(GPIO_DAC,DS3_PIN); //din传输低电平信号
                                   GPIO_SetBits(GPIO_DAC,DS2_PIN);           //clk置高电平                                                                               GPIO_ResetBits(GPIO_DAC,DS2_PIN);  //clk置低电平
                                                   
                                }
                          DA=(DA<<1);
                        }
                          i=i+1;
                }
         GPIO_SetBits(GPIO_DAC,DS1_PIN);           //sync置高电平
}












欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4