STM32F4. Урок 23 - Робота з ЦАП

Ця бібліотека дозволяє працювати з двома ЦАП (DAC1 і DAC2) процесора STM32F4. При ініціалізації потрібно лише вказати, скільки ЦАП буде використовуватися: один чи обидва. Якщо будуть використовуватися обидва, то в функції необхідно вказати номер використовуваного ЦАПа.

Приклад використання:

dac

ЦАП жорстко прив'язаний до виводів процесора:

DAC1 до PA4
DAC2 до PA5

Вимоги:

   Підключувані модулі CooCox-IDE: GPIO, DAC.
   Підтримувані бібліотеки: відсутні.

Перерахування:

typedef enum {
  SINGLE_DAC1 = 0, // використовувати тільки DAC1 на PA4
  SINGLE_DAC2,     // використовувати тільки DAC2 на PA5
  DUAL_DAC         // використовувати DAC1 (PA4) і DAC2 (PA5)
}DAC_MODE_t;

Функції:

void UB_DAC_Init(DAC_MODE_t mode);                             // для ініціалізації ЦАП
void UB_DAC_SetDAC1(uint16_t wert);                            // вивід значення DAC1
void UB_DAC_SetDAC2(uint16_t wert);                            // вивід значення DAC2
void UB_DAC_SetDAC1u2(uint16_t dacwert_1, uint16_t dacwert_2); // для задання обох значень ЦАП одночасно

Приклад використання:

//--------------------------------------------------------------
// Файл     : main.c
// Дата     : 23.03.2013
// Версія   : 1.0
// Автор    : UB
// Електронна пошта    : mc-4u(@)t-online.de
// Веб      : www.mikrocontroller-4u.de
// ЦПУ      : STM32F4
// IDE      : CooCox CoIDE 1.7.0
// Модуль   : CMSIS_BOOT, M4_CMSIS_CORE
// Функція  : Демонстрація бібліотеки DAC
// Примітка : Ці два файли повинні бути на 8MHz
//              "cmsis_boot/stm32f4xx.h"
//              "cmsis_boot/system_stm32f4xx.c"
//--------------------------------------------------------------

#include "main.h"
#include "stm32_ub_dac.h"

int main(void)
{
  uint16_t wert;

  SystemInit(); // Ініціалізація налаштувань кварца

  // Ініціалізація налаштувань ЦАП (DAC-1)
  UB_DAC_Init(SINGLE_DAC1);

  while(1)
  {
	  // генерування пилоподібного сигналу
	  // від 0 до 3,3V на PA4
	  // з періодом T = ~2ms (f = ~500Hz)
	  for(wert=0;wert<4096;wert++) {
		  UB_DAC_SetDAC1(wert);
	  }
  }
}

У додатку проект CooCox і окрема бібліотека для використання в інших проектах. Автор оригіналу статті просить задавати питання на його сайті німецькою або англійською мовами.

Оригінал статті

Прикреплені файли:

Top