Выполнил проект с использованием микроконтроллера STM32F103СС8Т6, используя Keil и STM32CubeMX. Реализовал следующие функции:
Включил и настроил ADC (Analog-to-Digital Converter) для измерения аналогового значения с аналогового входа микроконтроллера.
Настроил DMA (Direct Memory Access) для передачи данных между ADC и UART без участия процессора.
Инициализировал UART (Universal Asynchronous Receiver/Transmitter) для передачи данных по последовательному интерфейсу.
Реализовал обработчик прерывания ADC для копирования измеренных значений из буфера ADC в буфер UART.
Разработал функцию обработки ошибок для предотвращения нежелательного поведения в случае возникновения ошибок.
Скомпилировал и загрузил проект в микроконтроллер с помощью Keil.
Подключил UART-порт к компьютеру для просмотра переданных данных в терминале компьютера.
UART выдает:aidi:1885:1879:1886:1885:1889:1887:1896:1892:1896:1895
Пока не подключено ничего 1885 выдает. Как подключите выдаст от 0 до 4095 (АЦП у нас 12-ти битный).
Проект будет наверно развиваться. Пока такой загружай и пользуйся.
Цель передать аналоговые значения в esp8266.
Подробное описание наверное будет как работает и что можно изменить.
Если кто-то может подсказать недочеты и добавить функциональность в проект, то будет хорошо.
В версии №3 STM32F103_ADC_DMA3.7z: UART выдает:aidi:1885:1879:1886:1885:1889:1887:1896:1892:1896:1895
В версии №4 STM32F103_ADC_DMA4.7z: появилось uart stm 32 №4.flp. В этой версии аналоговые значения поочередно передаются от STM32F103 в формате .0:1885, принимаются в esp8266 и обрабатываются получаем 0:1885...9:1885 при каждой отправке. Подкорректировать можно время отправки на STM32F103 быстрее или медленнее.