PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : راه اندازی قسمت dac



wantedboy
09-10-2014, 22:43
سلام دوستان
کسی تا حالا این قسمت DAC stm32f103 را راندازی کرده؟
لطفا کمک کنید

mzarkoob
10-10-2014, 19:48
خوب در کجاش مشکل دارید؟
چند تا سمپل در برنامه های cmsis هست

wantedboy
10-10-2014, 21:30
سلام
من فایل wave را خوندم بیت بیت دیتاشو خودنم ولی حالا باید با کدوم قسمت میکرو به صوت تبدیلش کنیم؟
با DAC یا PWM ؟؟
ممنون دوستان که جواب میدین.

mzarkoob
10-10-2014, 21:33
میدهند به
dac که پایه خروجی آن به یه تقویت کننده وصله که به اسپیکر وصل میشه

wantedboy
10-10-2014, 21:41
میدهند به
dac که پایه خروجی آن به یه تقویت کننده وصله که به اسپیکر وصل میشه

سلام
قسمت DAC وقتی با توابع CMSIS راه می اندازم ارور میده.میگه undenifed دستورات Dac.
کتاب خانه dac از حالت توضیحات برداشتم بازم ارور میده

- - - Updated - - -


GPIO_InitTypeDef GPIO_InitStructure;
DAC_InitTypeDef DAC_InitStructure;

  SystemInit();

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

GPIO_Init(GPIOA, &GPIO_InitStructure);

  DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0;

DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;

DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;
DAC_InitStructure.DAC_WaveGeneration =
DAC_WaveGeneration_None;

DAC_Init(DAC_Channel_1, &DAC_InitStructure);  

DAC_SetChannel1Data(DAC_Align_12b_R, 0x7FF);

DAC_Cmd(DAC_Channel_1, ENABLE);

این کد گذاشتم

mzarkoob
10-10-2014, 21:50
بایستی برای cmsis کتابخونه ها اد بشه و هدر هاشون هم در بالای برنامه include بشه و مسیر همه هدرها هم شناسونده بشه و مدل میکرو STM32F10X_MD یا STM32F10X_HD .... تعریف بشه
در این حالت بیس کار انجام شده و قصه من نمی شناسم تو نمیشناسی و ... نداریم دیگه :0013:

wantedboy
10-10-2014, 21:56
ایول
بیشتر توضیح میدی
مدل میکرو کجا مشخص میشه اونی که داخل نرم افزاره؟
مدلشو از کجا بفهمم؟

wantedboy
11-10-2014, 00:10
سلام
با این تنظیمات که گذاشتم را افتاد.

GPIO_InitTypeDef GPIO_InitStructure;
DAC_InitTypeDef DAC_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC| RCC_APB1Periph_TIM2 , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA| RCC_APB2Periph_AFIO , ENABLE );

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);

// GPIO_Init(GPIOA, &GPIO_InitStructure);
// DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_4095;
DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;
DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
DAC_Init(DAC_Channel_2, &DAC_InitStructure);

DAC_Cmd(DAC_Channel_2, ENABLE);

حالا می خوام کد های WAVE بخونم.

DrawStringAt(0,0,"PLAY WAVE",GOLD ,GetBkColor());
res = f_open(&fsrc,"0:sound.wav", FA_OPEN_EXISTING | FA_READ);
br=1;
i=0;
for (;;) {
// for(i=0; i<512; i++) buffer[i]=0;
res = f_read(&fsrc, buffer, 1, &br);

DAC_SetChannel2Data(DAC_Align_8b_R, buffer[0]);
delay(1000);
if (res || br == 0) break; // error or eof

}
f_close(&fsrc);

DrawStringAt(1,0,"PLAY WAVE TAMOM",GOLD ,GetBkColor());
صدایی در خروجی نمی آید و می دونم قسمت ADC کار می کنه.
یک تاخیر بین هر خوندن گإاشتم بازم هیچ صدایی داخل اسپیکر پخش نمیشه.فایل صوتیم هم 8 بیتیه
لطفا کمک کنید دوستان