1 курс. 2 семестр / системы сбора и предварительной обработки данных / lab_report_demo
.docxГУАП
КАФЕДРА № 43
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
ассистент |
|
|
|
К.А. Кочин |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ |
Создание первого проекта и знакомство со средой разработки |
по курсу: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ |
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4831М |
|
|
|
|
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2019
Цель работы
Изучить процесс создания и настройки проекта в STM32CubeMX и Keil uVision v5 для отладочной платы STM32F3Discovery. Получить практические навыки работы с портами вывода, на примере управления светодиодами. Написать и отладить программу для проигрывания заданной анимации на светодиодах.
Задание
Создать программу, которая выполняет следующую последовательность действий:
включить светодиоды LD10 м LD6, как показано на рисунке ;
Рисунок 1. Начальное состояние светодиодов
циклически сдвинуть включенные светодиоды по часовой стрелке на 3 круга с задержкой между шагами в 100 мс;
циклически сдвинуть включенные светодиоды против часовой стрелки на 6 кругов с задержкой между шагами в 50 мс;
повторять шаги 1-3 до бесконечности.
Результаты выполнения лабораторной работы
В соответствии с заданием реализована программа для микроконтроллера STM32F3. Листинг кода, реализующего основную логику приведен ниже.
Фрагмент кода main.c.
int main(void)
{
// mcu configuration and initialization
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
// main logic
uint8_t ledMask = 0x05;
while (1) {
// mode 1
for (int i = 0; i < 24; i++) {
ledMask = (ledMask << 1) | (ledMask >> 7);
HAL_GPIO_WritePin(GPIOE, 0xFF00, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE, ledMask << 8, GPIO_PIN_SET);
HAL_Delay(100);
}
// mode 2
for (int i = 0; i < 48; i++) {
ledMask = (ledMask >> 1) | (ledMask << 7);
HAL_GPIO_WritePin(GPIOE, 0xFF00, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE, ledMask << 8, GPIO_PIN_SET);
HAL_Delay(50);
}
}
}
Выводы
В результате выполнения лабораторной работы был изучен процесс создания проекта в STM32CubeMX и Keil uVision v5 для микроконтроллеров STM32. Изучена базовая структура программы для микроконтроллера, и получены практические навыки работы с интерфейсами ввода/вывода общего назначения. Создана программа, формирующая светодиодную индикацию в соответствии с заданием.