资源简介

DAC8411驱动程序(用STM32F的ARM调试通过),完全使用寄存器操作,没有使用固件库,是用STM32F103用项目时候写的,完全调试通过,头文件也包括进来了,参考下吧。C语言写的。

资源截图

代码片段和文件信息

#include “stm32f10x_map.h“

#define  DAC_DIN_0                 GPIOD_BRR  = BB0
#define  DAC_DIN_1 GPIOD_BSRR = BB0
#define  DAC_SCLK_0 GPIOD_BRR  = BB1
#define  DAC_SCLK_1 GPIOD_BSRR = BB1
#define  DAC_SYNC_0 GPIOD_BRR  = BB3
#define  DAC_SYNC_1 GPIOD_BSRR = BB3

#define BB0                  ((u16)0x0001)  
#define BB1                  ((u16)0x0002)  
#define BB2                  ((u16)0x0004)  
#define BB3                  ((u16)0x0008)  
#define BB4                  ((u16)0x0010)  
#define BB5                  ((u16)0x0020)  
#define BB6                  ((u16)0x0040)  
#define BB7                  ((u16)0x0080)  
#define BB8                  ((u16)0x0100)  
#define BB9                  ((u16)0x0200)  
#define BB10                 ((u16)0x0400)  
#define BB11                 ((u16)0x0800)  
#define BB12                 ((u16)0x1000)  
#define BB13                 ((u16)0x2000)  
#define BB14                 ((u16)0x4000)  
#define BB15                 ((u16)0x8000) 

#define DAC8411_Ref_Value     (float)2.5

void DAC_delay1(void)
{
  u32 i;
for(i=0; i<5;i++);
}

void DAC_OUT(float V_Value)
{
u32 DAC8411_Coding;
u32 control_word;
u8 i;

DAC8411_Coding = (u32)(65535 * V_Value/DAC8411_Ref_Value);
DAC8411_Coding = DAC8411_Coding<< 6;
DAC8411_Coding &=  ~(u32)(B_23 | B_22);
DAC_SYNC_1;
DAC_delay1();
DAC_delay1();
DAC_SCLK_0;
DAC_DIN_0;
DAC_SYNC_0;
for (i = 0; i < 18; i++)
{
DAC_SCLK_1;
     control_word = 0x800000;
control_word >>= i;
if (DAC8411_Coding & control_word)
{
DAC_DIN_1;
}
    else
    {
        DAC_DIN_0;
    }
    DAC_delay1();
    DAC_SCLK_0;
DAC_delay1();
}
DAC_SYNC_1;
DAC_SCLK_0;
DAC_DIN_0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1747  2012-08-23 11:36  DAC8411.c

     文件      18785  2012-02-17 16:08  stm32f10x_map.h

----------- ---------  ---------- -----  ----

                20532                    2


评论

共有 条评论