- •Лабораторная 4: usart
- •Часть 1: usart. Краткое описание usart.
- •Контроль чётности
- •Управление потоком
- •Область применения.
- •Часть 2: Программирование usart. Настройка usart с помощью библиотеки StdPeriph.
- •Включение тактирования usart
- •Инициализация usart.
- •Отправка строки с текстом по usart
- •Использование функции sprintf
- •Часть 3: Протокол передачи. Протоколы передачи данных.
- •Отправка байта по usart
- •Приём данных
- •Буферы приёма
- •Примеры протоколов
- •Задание
- •Порядок выполнения задания.
Задание
Написать программу, которая отправляет заданный байт на ПК с периодом 1 секунда.
Написать функцию, отправляющую на ПК строку. И на её основе написать передачу на ПК строки вида: «i=x», где х увеличивается на 1 каждую секунду.
Написать программу, которая по команде с ПК зажигает заданный светодиод.
Порядок выполнения задания.
Задание 1:
Запустить файл «lab5DMA.uvproj» в папке «lab4».
Разобраться в структуре программы и найти функцию main().
Внутри цикла while(1) отправить любой байт с помощью функции send_to_USART (см. пункт «Отправка байта по USART»).
В следующей строке вызвать функцию задержки программы на 1 секунду: delay_ms(1000);
Проверить работоспособность программы. Для этого необходимо выполнить следующие действия:
Подключить соединительные провода от модуля USART к соответствующим выводам отладочной платы. Порт и номер ножки порта можно определить, посмотрев, какие выводы использованы для инициализации USART в функции «USART_ini(void)» в коде программы.
Запустить на ПК программу «ComMon.exe», которая находится в папке «ПО\Работа с COM портом\ComMon». Выбрать COM-порт и снять обе галочки «text».
Задание 2:
Написать функцию передачи строки по USART как описано в «Отправка строки с текстом по USART».
Написать счётчик, который увеличивает значение i на 1 каждую секунду.
С помощью функции sprintf из раздела «Использование функции sprintf» создайте строку вида «i=x», где вместо х вставляется значение i.
С помощью написанной функции по передаче строки, отправьте полученную строку на ПК.
Задание 3:
Выяснить номера выводов, к которым подключены светодиоды, как описано в разделе «Определение подключения светодиодов» лабораторной работы 1.
В функцию main() после строки USART_ini(); добавить код инициализации выводов, к которым подключены светодиоды. Код скопировать из программы для лабораторной работы 1.
Найти в программе функцию обработки прерываний USART3_IRQHandler(void). После строки, которая реализует сохранение принятого байта в переменную Res_data, добавить проверку следующих условий (условную конструкцию if): если принятый байт равен 1, включить красный светодиод; если принятый байт равен 2, включить желтый светодиод; если принятый байт равен 3, включить зеленый светодиод; если принятый байт равен 4, включить синий светодиод. Если принят ноль, выключить все светодиоды.
Проверить работоспособность программы. Для этого необходимо выполнить следующие действия:
Подключить соединительные провода от модуля USART к соответствующим выводам отладочной платы. Порт и номер ножки порта можно определить, посмотрев, какие выводы использованы для инициализации USART в функции «USART_ini(void)» в коде программы.
Запустить на ПК программу «ComMon.exe», которая находится в папке «ПО\Работа с COM портом\ComMon». Выбрать COM-порт и снять обе галочки «text». Для отправки данных на МК необходимо ввести данные в строку внизу окна программы в виде шестнадцатеричных чисел и нажать кнопку «Send».
