13.10M
Category: electronicselectronics

этап 2. программирование материнской платы

1.

Работа с Introsat
Этап 2
Программирование материнской платы
Распиновка
STM32F103
Подключение UART
Типы переменных
Задание
По завершению второго этапа мы соберем материнскую
плату с blue pill и напишем прошивку, способную передавать
данные на компьютер с помощью UART
Что делает код?

2.

Распиновка STM32F103

3.

UART переходник
Universal Asynchronous Receiver-Transmitter —
«Универсальный Асинхронный Приемо-Передатчик».
RX принимает
данные
TX отправляет данные
Питание 5V
Заземление GND

4.

Контакты, с которыми мы будем работать
TXD -> RX (PA_10)
RXD -> TX (PA_9)
GND -> GND
5 V -> 5 V

5.

Матери́нская пла́та (англ. motherboard;
также «мать», «матери́нка», системная
плата) — печатная плата, представляющая
собой основу конструкций различных
электронных устройств
Cодержит основные компоненты устройства:
• процессор,
• системную шину или шины,
• «встроенные» контроллеры периферийных
устройств,
• сервисную логику и разъёмы для
подключения дополнительных
взаимозаменяемых плат,
называемых платами расширений
Размеры платы: 76х76 мм, расстояния между отверстиями для крепления:
65 мм

6.

НА ЛИЦЕВОЙ СТОРОНЕ:
1. Microcontroller - для подключения платы
Blue Pill.
2. Power Module - для подключения модуля
питания. Соединение происходит через
шестиконтактный разъём (PSD) 3V3, GND,
5V, ответная часть которого находится на
обратной стороне платы модуля питания.
3. Sensor - для подключения одного из
датчиков из набора IntroSat (датчика
позиционирования или оптического
датчика) по интерфейсу I2C1. Обычно в это
гнездо устанавливается датчик
позиционирования.
3
6
5
4
2
4
1
6

7.

НА ОБОРОТНОЙ СТОРОНЕ:
3
1. Bluetooth (ST, TX1, RX1, GND, 5V, EN) используется для подключения Bluetoothмодуля или непосредственно USB-UART
конвертера
2. microSD слот - microSD карта подключается
к микроконтроллеру через интерфейс SPI1.
Пин CS подключен к выводу PA4.
Необходимое форматирование microSD
карты - FAT32.
3. PBS разъёмы для подключения к
цифровым пинам микроконтроллера (их
номера обозначены на шелкографии); к
этим разъёмам также можно подключить
модуль интерфейса и прототипирования.
2
3
1
3

8.

Посадка BluePill на материнскую плату Introsat
USBSIDE
Соедините материнскую плату и плату BluePill,
как показано на фото.
ВАЖНО!
Разъем microusb на плате
BluePill должен находиться
над надписью «USB-SIDE».

9.

Вспомните принцип UART подключения и
присоедините конвертор к материнской плате
4 провода «папа»-«мама»
RX в __?__
TX в __?__
+5V в 5V
GND в GND

10.

Библиотека SERIAL для работы с UART в Arduino IDE.
Для работы с аппаратными UART контроллерами в Ардуино существует
встроенный класс Serial. Он предназначен для управления обменом
данными через UART.
В классе Serial данные могут
передаваться в двух форматах:
▪ как бинарный код;
▪ как ASCII символы.
Например, монитор последовательного порта в программе Arduino
IDE принимает данные как ASCII текст. Для того, чтобы он вывел на
экран компьютера число “65” надо передать коды символов “6” и
“5”. А код ”65” монитор отобразит как символ “A”.

11.

Функции класса Serial Назначение
Пример
Объяснение
begin(long speed)
Разрешает работу порта UART и задает
скорость обмена в бод (бит в сек).
Serial.begin
(38400);
инициализация порта,
скорость 38400 бод
end()
Отключает порт UART, освобождает выводы RX Serial.end(); закрыть порт UART
и TX.
available()
Возвращает количество байт, принятых
последовательным портом и записанных в
буфер. Буфер может хранить до 64 байт. В
случае пустого буфера возвращает 0.
int n;
n= Serial.
available();
в n число принятых байтов
read()
Возвращает очередной байт из буфера
последовательного порта. Если буфер пуст –
возвращает число – 1 (0xffff).
receiveByte
=
Serial.read(
);
чтение байта из буфера
flush()
Ожидает окончания передачи данных из
буфера последовательного порта.
Serial.flush(
);
ждем окончания передачи
print(),
println()
Выводит данные через последовательный порт
UART в виде ASCII символов. Функция имеет
различные формы вызова для разных
форматов и типов данных.
int d= 83;
Serial.printl
n
(d, DEC);
вывод строки “83 \r \n” в
десятичном виде

12.

Часто используются следующие стандартные скорости передачи
интерфейса UART.
Скорость
передачи,
бод
Время передачи Время передачи
одного бита, мкс
байта,
мкс
4800
208
2083
9600
104
1042
19200
52
521
38400
26
260
57600
17
174
115200
8,7
87
(1 бод = 0,8 бит/сек)
Обмен информацией через UART происходит в дуплексном режиме, т.е.
передача данных может происходить одновременно с приёмом. В
неактивном режиме выход UART находится в высоком состоянии.

13.

Заполните пропуски и запишите код программы
1. Внутри функции setup задайте настройки ком-порта:
Serial.begin(___?_____, SERIAL_8E1);
cкорость
передачи (бод)
при 8,7 мкс/бит
2. Чтобы получить и отобразить информацию,
передаваемую микроконтроллером, внутри функции loop запишем
команду
//отправить текст в ком-порт для отображения на ПК
Serial._____?_____(“Hello, World!”);
delay(500);

14.

Типы переменных и их объявление
Тип
Диапазон
Примечание
Пример
int
-32 768 до 32 767
Целые числа
int x = 7;
long
-2147483648 до 2147483647
Целые числа
long t1 = 2200000000;
float
-3.4E+38 до 3.4E+38
Числа с плавающей точкой
float angle = 22.5;
boolean
0 или 1, true или false
Логический тип
bool c = 25; // true
char
-128 до 127
Код ASCII
char msg = ‘b’;
Массив символов char
String inputMessage =
“Hello, world!”;
unsigned 8bit integer
uint8_t cnt = 100;
string
uint8_t
0 до 255
int16_t
-32 768 до 32 767
int16_t spd = 30000;

15.

Задание
● Определите разницу между командами: Serial.print() и Serial.println()
● Задайте часть фразы как локальную переменную типа String,
используйте её в выводе вместе с другой частью фразы.
Пример:
● Пронумеруйте каждое выводимое сообщение. Подсказка: объявите
глобальную переменную типа int, в функции loop() запишите инкремент i
= i + 1 (или i++), добавьте значение i в вывод.
Пример:
● Создайте переменную для хранения номера контакта встроенного
светодиода и сделайте так, чтобы в начале передачи светодиод
загорался и гас по завершению

16.

17.

Что делает этот код?
English     Русский Rules