查看: 836|回复: 0
打印 上一主题 下一主题

新手新ID,技术水帖(2):DAC7512,在stm32f103zet6中的使用

[复制链接]
跳转到指定楼层
沙发
发表于 2016-4-27 21:07:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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置高电平
}







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表