DAC

更新时间:2019-01-25 14:43:06

接口列表

函数名称 功能描述
hal_dac_init 初始化指定DAC
hal_dac_start 开始DAC输出
hal_dac_stop 停止DAC输出
hal_dac_set_value 设置DAC输出值
hal_dac_get_value 获取当前DAC输出值
hal_dac_finalize 关闭指定DAC

接口详情

int32_t hal_dac_init(dac_dev_t *dac)

描述 初始化指定DAC
参数 dac:DAC设备描述
返回值 返回成功或失败, 返回0表示DAC初始化成功,非0表示失败

int32_t hal_dac_start(dac_dev_t *dac, uint32_t channel)

描述
开始DAC输出
参数
dac:DAC设备描述
channel:输出通道号
返回值
返回成功或失败, 返回0表示DAC开始输出成功,非0表示失败

int32_t hal_dac_stop(dac_dev_t *dac, uint32_t channel)

描述
停止DAC输出
参数
dac:DAC设备描述
channel:输出通道号
返回值
返回成功或失败, 返回0表示DAC停止成功,非0表示失败

int32_t hal_dac_set_value(dac_dev_t *dac, uint32_t channel, uint32_t data)

描述
设置DAC输出值
参数
dac:DAC设备描述
channel:输出通道号
data:输出值
返回值
返回成功或失败, 返回0表示DAC输出值设定成功,非0表示失败

int32_t hal_dac_get_value(dac_dev_t *dac, uint32_t channel)

描述
获取当前DAC输出值
参数
adc:ADC设备描述
channel:输出通道号
返回值
返回DAC输出值

int32_t hal_dac_finalize(dac_dev_t *dac)

描述 关闭指定DAC
参数 adc:ADC设备描述
返回值 返回成功或失败, 返回0表示DAC关闭成功,非0表示失败

相关结数据结构

dac_dev_t

typedef struct {
    uint8_t port;   /* dac port */
    void   *priv;   /* priv data */
} dac_dev_t;

使用示例

#include <aos/hal/dac.h>

#define DAC1_PORT_NUM 1
#define DAC1_CHANNEL_NUM 1

/* define dev */
dac_dev_t dac1;

int application_start(int argc, char *argv[])
{
    int ret   = -1;
    int value = 0;
    static int count = 0;

    /* dac port set */
    dac1.port = DAC1_PORT_NUM;

    /* init dac1 with the given settings */
    ret = hal_dac_init(&dac1);
    if (ret != 0) {
        printf("dac1 init error !\n");
    }

    value = 10;

    ret = hal_dac_set_value(&dac1, DAC1_CHANNEL_NUM, value);
    if (ret != 0) {
        printf("dac1 set value error !\n");
    }

    /* start dac output */
    ret = hal_dac_start(&dac1, DAC1_CHANNEL_NUM);
    if (ret != 0) {
        printf("dac1 start error !\n");
    }

    while(1) {
        if (count == 10) {
            /* finalize dac1 */
            hal_dac_finalize(&dac1);
        }

        /* sleep 500ms */
        aos_msleep(500);

        count++;
    };
}

注:port为逻辑端口号,其与物理端口号的对应关系见具体的对接实现

移植说明
   新建hal\_dac\_xxmcu.c和hal\_dac\_xxmcu.h的文件,并将这两个文件放到platform/mcu/xxmcu/hal目录下。在hal\_dac\_xxmcu.c中实现所需要的hal函数,hal\_dac\_xxmcu.h中放置相关宏定义。
   参考platform/mcu/stm32l4xx/src/STM32L496G-Discovery/hal/hal\_dac\_stm32l4.c

results matching ""

    No results matching ""