STM32F4. Урок 23 — Работа с ЦАП

Данная библиотека позволяет работать с двумя ЦАП (DAC1 и DAC2) процессора STM32F4. При инициализации необходимо лишь указать сколько ЦАП будет использоваться: один или оба. Если будут использоваться оба, то в функции необходимо указать номер используемого ЦАПа.

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

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

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 и отдельная библиотека для использования в других проектах. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.

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

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

Добавить комментарий

Ваш адрес email не будет опубликован.