56 lines
1.5 KiB
C
56 lines
1.5 KiB
C
#include "./dac/bsp_dac.h"
|
|
|
|
|
|
DAC_HandleTypeDef DAC_Handler;
|
|
DAC_ChannelConfTypeDef Dac_Config;
|
|
|
|
|
|
void DAC1_Init(void)
|
|
{
|
|
DAC_Handler.Instance=DAC1;
|
|
HAL_DAC_Init(&DAC_Handler);
|
|
Dac_Config.DAC_Trigger=DAC_TRIGGER_NONE;
|
|
Dac_Config.DAC_OutputBuffer=DAC_OUTPUTBUFFER_DISABLE;
|
|
HAL_DAC_ConfigChannel(&DAC_Handler,&Dac_Config,DAC_CHANNEL_1);
|
|
HAL_DAC_Start(&DAC_Handler,DAC_CHANNEL_1);
|
|
}
|
|
|
|
|
|
void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
|
|
{
|
|
GPIO_InitTypeDef GPIO_Initure;
|
|
Dac_RCC_Clk();
|
|
Dac_GPIO_Clk();
|
|
GPIO_Initure.Pin = Dac_Pin;
|
|
GPIO_Initure.Mode=GPIO_MODE_ANALOG;
|
|
GPIO_Initure.Pull=GPIO_NOPULL;
|
|
HAL_GPIO_Init(Dac_Port,&GPIO_Initure);
|
|
}
|
|
|
|
const uint16_t Sine12bit[32] = {
|
|
2048 , 2460 , 2856 , 3218 , 3532 , 3786 , 3969 , 4072 ,
|
|
4093 , 4031 , 3887 , 3668 , 3382 , 3042 , 2661 , 2255 ,
|
|
1841 , 1435 , 1054 , 714 , 428 , 209 , 65 , 3 ,
|
|
24 , 127 , 310 , 564 , 878 , 1240 , 1636 , 2048
|
|
|
|
};
|
|
uint32_t DualSine12bit[32];
|
|
|
|
void Dac_Is_XuanBo()
|
|
{
|
|
uint32_t Idx = 0;
|
|
float temp = 0.0;
|
|
uint16_t data;
|
|
for (Idx = 0; Idx < 32; Idx++)
|
|
{
|
|
DualSine12bit[Idx] = (Sine12bit[Idx] << 16) + (Sine12bit[Idx]);
|
|
HAL_DAC_SetValue(&DAC_Handler,DAC_CHANNEL_1,DAC_ALIGN_12B_R, DualSine12bit[Idx]);
|
|
|
|
data = HAL_DAC_GetValue(&DAC_Handler,DAC_CHANNEL_1); //»ñȡͨµÀ1Êä³öµÄÖµ
|
|
temp=(float)data * (3.3/4096);
|
|
printf("\r\n DAC output voltage = %f V \r\n", temp);
|
|
}
|
|
}
|
|
|
|
|