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