Видео в конце...
Этим выпуском завершим многосерийный обзор асинхронного интерфейса передачи данных RS232. Осталось решить одну небольшую задачу. Это написание программы отправки данных с компьютера. В прошлом выпуске мы успели подготовить модуль приемника к эксперименту.
Почему не Win32API?
На этой схеме упрощенно показан весь путь вызовов функций от прикладного приложения пользователя до самых низкоуровневых функций аппаратных абстракций.
По счастью, нас сейчас интересует только прикладной интерфейс приложений Win32API, предоставляемый операционной системой. В одном из прошлых выпусков мы успели его попробовать в деле. Количество параметров в функциях и типы данных у этих параметров вызывают не самые приятные эмоции. Без предварительной подготовки очень сложно оценить с какими стандартными типами данных их можно соотнести.
Творчество программистов очень часто выражается в том, чтобы придумывать по настоящему удобные абстракции. Это наборы функций для взаимодействия с какой-то конкретной областью деятельности. К примеру, если мы хотим работать с оборудованием, управляемым через интерфейс RS232, то мы, конечно же, не захотим выискивать среди тысяч функций прикладного интерфейса Windows те самые, которые пригодятся. За много лет ударного труда программистами написано множество абстракций. Одни прекрасны, другие не очень . Большинство это чьи-то троечные курсовики, но оставшаяся часть очень даже годные творения.
Библиотеки функций
Как распознать годные поделки? Во-первых, при использовании библиотеки выигрыш времени должен быть больше чем проигрыш времени на изучение документации. Так что если чувствуете, что долго не понимаете как пользоваться поделкой, то лучше выбросить ее и найти другую. Во-вторых, она обязана работать без ошибок. Искать ошибки во много раз дольше и сложнее, чем разбираться в документации.
Посмотрим как пользоваться одной из библиотек.
Прототипы функций в заголовочном файле зачастую решают все. Все что нам пригодится это функция открытия порта RS232_OpenComport(), закрытия порта RS232_CloseComport() и отправки одного байта RS232_SendByte().
Пишем код
Благодаря простой документации буквально парой строк решаем свою задачу. Подключаем заголовочный файл библиотеки rs232.h. Напишем самые необходимые параметры и строку для передачи на ПЛИС. Открываем порт и циклом отправляем все символы из строки по очереди. После каждый отправки ждем секунду. Это пригодится чтоб рассмотреть моргание индикаторов на отладочной плате. Это весь код.
Запускаем сценарий сборки приложения и получаем исполняемый файл. Каждую секунду через интерфейс RS232 на отладочную плату отправляется новый символ. Его код отображается в консоли. На отладочной плате индикатор показывает коды символов в двоичном виде.
Мы обошлись без модуля антидребезга на ПЛИС и получили с виду устойчивую связь с отладочной платой. Можем как принимать данные с нее, так и отправлять. Это открывает очень широкие возможности для создания программно-аппаратных комплексов обработки информации. Этим и займемся в следующих выпусках.
Более подробно обо все этом в видео-обзоре...
Поддержите статью лайком если понравилось и подпишитесь чтобы ничего не пропускать.