HW DAC

来自拉普兰德Wiki
跳转至: 导航搜索

固件说明

HW_DAC.c和HW_DAC.h是DAC数模转换模块的固件驱动文件,这里定义了该模块的初始化函数、反初始化函数、设置缓冲区、软件出发输出等函数,你可以通过配置相关结构体来实现硬件出发、DMA传输等高级功能。

结构体

DAC_InitTypeDef

变量 描述 取值 初始化
DAC_Type *DAC_Dacx 选择DACx DAC0、DAC1 必须初始化
boolean DAC_BufferEnable 使能缓冲区工作 TRUE-使能缓冲区工作
FALSE-禁用缓冲区
不必须初始化,默认FALSE
uint8 DAC_BufferWorkMode 缓冲区工作模式选择,只在DAC_BufferEnable为TRUE时有效

BUFFER_MODE_NORMAL-普通模式,指针到达上限后清0
BUFFER_MODE_SWING-摆动模式,指针到达上限后再递减回到0
BUFFER_MODE_ONETIMESCAN-单次扫描模式,指针到达上限后停止

不必须初始化,默认BUFFER_MODE_NORMAL
uint8 DAC_BufferWatermarkSel 缓冲区水印选择,只在DAC_BufferEnable为TRUE时有效,

在DAC_BufferWatermarkIntEnable为TRUE时产生中断请求

WATERMARK_1WORD-水印距离缓冲区上限1个字
WATERMARK_2WORDS-水印距离缓冲区上限2个字
WATERMARK_3WORDS-水印距离缓冲区上限3个字
WATERMARK_4WORDS-水印距离缓冲区上限4个字

不必须初始化,默认WATERMARK_1WORD
boolean DAC_DmaEnable 使能DMA TRUE-使能DMA
FALSE-禁用DMA
不必须初始化,默认FALSE
uint8 DAC_BufferUpperLimit 缓冲区上限数值,只在DAC_BufferEnable为TRUE时有效 1~16 不必须初始化,默认1
boolean DAC_SoftTrgEnable 使能软件触发,只在DAC_BufferEnable为TRUE时有效 TRUE-使能软件触发
FALSE-禁用软件触发
不必须初始化,默认FALSE
boolean DAC_ReadPointerBottomIntEnable 使能读指针底部中断使能,使能后指针到达上限后产生中断请求 TRUE-使能
FALSE-禁用
不必须初始化,默认FALSE
boolean DAC_ReadPointerTopIntEnable 使能读指针顶部中断使能,使能后指针等于0后产生中断请求 TRUE-使能
FALSE-禁用
不必须初始化,默认FALSE
boolean DAC_ReadPointerTopIntEnable 使能读指针顶部中断使能,使能后指针等于0后产生中断请求 TRUE-使能
FALSE-禁用
不必须初始化,默认FALSE
boolean DAC_BufferWatermarkIntEnable 使能缓冲区水印中断使能,使能后指针到达水印位置后产生中断请求 TRUE-使能
FALSE-禁用
不必须初始化,默认FALSE
DAC_ISR_CALLBACK DAC_ReadPointerBottomIsr 底部中断回调函数 函数必须为无返回值,无参数(eg. void isr(void);) 不必须初始化、如未初始化则不会触发中断
DAC_ISR_CALLBACK DAC_ReadPointerTopIsr 顶部中断回调函数 函数必须为无返回值,无参数(eg. void isr(void);) 不必须初始化、如未初始化则不会触发中断
DAC_ISR_CALLBACK DAC_BufferWatermarkIsr 水印中断回调函数 函数必须为无返回值,无参数(eg. void isr(void);) 不必须初始化、如未初始化则不会触发中断

变量

函数

LPLD_DAC_Init()

函数原型

uint8 LPLD_DAC_Init(DAC_InitTypeDef);

描述

DAC初始化函数,使能DAC各项功能

形参

类型 名称 描述 取值
DAC_InitTypeDef dac_init_struct DAC初始化结构体 结构体定义见DAC_InitTypeDef

输出

0--配置错误
1--配置成功

LPLD_DAC_Deinit()

函数原型


uint8 LPLD_DAC_Deinit(DAC_InitTypeDef);

描述

DAC反初始化函数,禁用DAC模块

形参

类型 名称 描述 取值
DAC_InitTypeDef dac_init_struct DAC初始化结构体 结构体定义见DAC_InitTypeDef

输出

0--配置错误
1--配置成功

LPLD_DAC_EnableIrq()

函数原型

uint8 LPLD_DAC_EnableIrq(DAC_InitTypeDef);

描述

使能DACx中断

形参

类型 名称 描述 取值
DAC_InitTypeDef dac_init_struct DAC初始化结构体 结构体定义见DAC_InitTypeDef

输出

0--配置错误
1--配置成功

LPLD_DAC_DisableIrq()

函数原型

uint8 LPLD_DAC_DisableIrq(DAC_InitTypeDef);

描述

禁用DACx中断

形参

类型 名称 描述 取值
DAC_InitTypeDef dac_init_struct DAC初始化结构体 结构体定义见DAC_InitTypeDef

输出

0--配置错误
1--配置成功

LPLD_DAC_SetBufferDataN()

函数原型

void LPLD_DAC_SetBufferDataN(DAC_Type *, uint16, uint8);

描述

设置DAC缓存区单个数据n

形参

类型 名称 描述 取值
DAC_Type * dacx DACx模块号 DAC0--DAC0
DAC1--DAC1
uint16 data 缓冲区输出数据 0~4095--12位数据
uint8 num 指定缓冲区位置 1~16--缓冲区第1至16个字

输出

LPLD_DAC_SetBufferData()

函数原型

void LPLD_DAC_SetBufferData(DAC_Type *, uint16 *, uint8);

描述

设置DAC缓存区所有数据

形参

类型 名称 描述 取值
DAC_Type * dacx DACx模块号 DAC0--DAC0
DAC1--DAC1
uint16 * data 缓冲区输出数据数组指针 0~4095[]--12位数据数组
uint8 len 指定缓冲区位置 1~16--长度为1~16

输出

LPLD_DAC_SoftwareTrigger()

函数原型

void LPLD_DAC_SoftwareTrigger(DAC_Type *);

描述

软件触发DAC缓冲区工作

形参

类型 名称 描述 取值
DAC_Type * dacx DACx模块号 DAC0--DAC0
DAC1--DAC1

输出

其他