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); // для задания обоих значений ЦАП одновременно

Пример использования:

 //-------------------------------------------------------------- // File     : main.c // Datum    : 23.03.2013 // Version  : 1.0 // Autor    : UB // EMail    : mc-4u(@)t-online.de // Web      : www.mikrocontroller-4u.de // CPU      : STM32F4 // IDE      : CooCox CoIDE 1.7.0 // Module   : CMSIS_BOOT, M4_CMSIS_CORE // Funktion : Demo der DAC-Library // Hinweis  : Diese zwei Files muessen auf 8MHz stehen //              "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 и отдельная библиотека для использования в других проектах. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.