STM32F4. Урок 26 - Передача даних АЦП на ПК
Ця бібліотека призначена для зв'язку пристрою з комп'ютером і передачі виміряних значень АЦП у програму "Logview.exe" (наприклад, графік заряду батареї в даний момент або в динамічному режимі тощо).
Програма "Logview.exe" знаходиться у вільному доступі на сайті. Дані передаються мікроконтролером у форматі ASCII на комп'ютер через RS232. Отримані дані вимірювань можуть або відразу надсилатися на ПК, або формуватися в пакет для подальшої відправки на комп'ютер (залежить від налаштувань у прошивці мікроконтролера). Це дозволяє передавати дані багаторазових вимірювань, а масштабування на себе візьме комп'ютерна програма.
Примітка: Налаштування в LogView повинні збігатися з налаштуваннями мікроконтролера. Таким чином, якщо (як у прикладі) передаються дані двох АЦП, LogView також повинен бути налаштований на два канали, інакше відображення буде некоректним. До проекту додано три ini-файли для налаштування прийому даних.
Приклад використання:
Вимоги:
Підключувані модулі CooCox-IDE: Retarget_printf
Підтримувані бібліотеки: STM32_UB_UART
Функції:
ErrorStatus UB_Logview_Init(uint8_t kanal_anz); // ініціалізація void UB_Logview_SendFrame(UART_NAME_t uart); // відправка даних у Logview.exe
Приклад використання:
//-------------------------------------------------------------- // File : main.c // Datum : 29.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 бібліотеки Logview // Hinweis : Ці два файли повинні бути на 8MHz // "cmsis_boot/stm32f4xx.h" // "cmsis_boot/system_stm32f4xx.c" //-------------------------------------------------------------- #include "main.h" #include "stm32_ub_logview.h" #include "stm32_ub_adc1_single.h" void Delay(volatile uint32_t nCount){ while(nCount--) { } } int main(void) { uint16_t adc_wert; SystemInit(); // Ініціалізація налаштувань кварца // Ініціалізація Logview для роботи з двома каналами UB_Logview_Init(2); // Ініціалізація АЦП UB_ADC1_SINGLE_Init(); while(1) { // вимірювання АЦП на PA3 adc_wert=UB_ADC1_SINGLE_Read_MW(ADC_PA3); // Відправка отриманих значень у Logview по каналу 0 LOGVIEW.kanal[0]=adc_wert; // вимірювання АЦП на PС4 adc_wert=UB_ADC1_SINGLE_Read_MW(ADC_PC4); // Відправка отриманих значень у Logview по каналу 1 LOGVIEW.kanal[1]=adc_wert; // відправка обох виміряних значень через UART (PA2) // Відправити в Logview.exe UB_Logview_SendFrame(COM2); // невелика пауза Delay(500000); } }
В додатку проект CooCox і окрема бібліотека для використання в інших проектах. Автор оригіналу статті просить ставити запитання на його сайті німецькою або англійською мовами.
Прикреплені файли:
- Demo_26_Logview_rus.rar (250 Кб)
- logview_ini_files_rus.rar (37 Кб)
- ub_stm32f4_logview_v100_rus.rar (46 Кб)