Данная библиотека предназначена для работы с АЦП в групповом режиме. В данном режиме может быть создан список каналов АЦП (не более четырех каналов), значения которых циклически опрашиваются. Необходимо только запрашивать измеренные значения. Выводы используемых АЦП должны быть указаны в H-файле и указаны соответствующие настройки порта в С-файле.
В библиотеке имеются два одинаковых файла библиотеки для работы с ADC1 и ADC2 (они отличаются только именами используемых переменных).
В примере используется три вывода, определенных как аналоговые: PA3, PC4, PC5.
Требования:
Подключаемые модули CooCox-IDE: GPIO, ADC.
Поддерживаемые библиотеки: отсутствуют.
Перечисления:
typedef enum { ADC_PA3 = 0, // PA3 ADC_PC4 = 1, // PC4 ADC_PC5 = 2 // PC5 }ADC1i_NAME_t;
Функции:
void UB_ADC1_IG_Init(void); // инициализация и запуск uint16_t UB_ADC1_IG_Read(ADC1i_NAME_t adc_name); // читать данные из канала АЦП
Пример использования:
//-------------------------------------------------------------- // File : main.c // Datum : 22.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 ADC-Injected-Group-Library // Hinweis : Diese zwei Files muessen auf 8MHz stehen // "cmsis_boot/stm32f4xx.h" // "cmsis_boot/system_stm32f4xx.c" //-------------------------------------------------------------- #include "main.h" #include "stm32_ub_adc2_ig.h" #include "stm32_ub_led.h" int main(void) { uint16_t adc_wert; SystemInit(); // Инициализация настроек кварца // Инициализация ADC2 и начало измерения UB_ADC2_IG_Init(); // Инициализация светодиодов UB_Led_Init(); while(1) { // Канал АЦП для измерения данных на PA3 и включение синего светодиода adc_wert=UB_ADC2_IG_Read(ADC_PA3); if(adc_wert>2048) UB_Led_On(LED_BLUE); else UB_Led_Off(LED_BLUE); // Канал АЦП для измерения данных на PC4 и включение красного светодиода adc_wert=UB_ADC2_IG_Read(ADC_PC4); if(adc_wert>2048) UB_Led_On(LED_RED); else UB_Led_Off(LED_RED); // Канал АЦП для измерения данных на PC5 и включение зеленого светодиода adc_wert=UB_ADC2_IG_Read(ADC_PC5); if(adc_wert>2048) UB_Led_On(LED_GREEN); else UB_Led_Off(LED_GREEN); } }
В приложении проект CooCox и отдельная библиотека для использования в других проектах. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.
Прикрепленные файлы:
- ub_stm32f4_adc_injected_v100_rus.rar (7 Кб)
- Demo_21_ADC_InjGroup_rus.rar (178 Кб)
Комментарии (1) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
Можно ли измерить питание проца не использую внешне подключенную ножку?
У меня вот мысля. Сконфигурировать ножку на вход, и сделать пул Ап. Думаю как раз получу подтяжку к питанию через 10к.