Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Анонсы журнала "Лаборатория электроники и программирования" Новые статьи 15 и 16 номеров


8. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с UART. Передача данных.

Микроконтроллер имеет несколько интерфейсов UART. Обмен данными будем производить с персональным компьютером. Для демонстрации работы примера подключите к плате следующую схему, которая является преобразователем интерфейсов USB и UART.


На компьютере будет создан виртуальный COM порт.

Приведены примеры функций вывода байта, строки символов, вывод в терминальную программу в определенные позиции.

Примеры программ даны для IDE  «CooCox®»  [4].

 

9. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с RTC. Выполнение периодических действий с помощью будильника.

                Рассмотрим пример, когда необходимо производить некоторые действия через определенный интервал времени, например 5 сек.  Будем использовать для этого будильник. Практически нам необходимо при возникновении прерывания будильника перепрограммировать его на новое время. В прерывании установим флаг необходимости перепрограммирования будильника, а в основном цикле программы – перепрограммируем его и сбросим флаг.

Результат работы программы:

RTC ALARM INT:

ALARM_A

13-00-05

ALARM_A

13-00-10

ALARM_A

13-00-15

Примеры программ даны для IDE  «CooCox®»  [4].

 

10. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с АЦП. Программный запуск.

Микроконтроллер имеет 3 интерфейса АЦП (разрядность их 12 бит) и максимальную частоту преобразования одного канала 2,4 МГц [1]. АЦП производит измерение напряжения от 0 до величины опорного напряжения.

Будем использовать канал 12 преобразователя ADC1, расположенный на выводе PC2. Для изменения аналогового сигнала на входе АЦП будем использовать потенциометр, который нужно подключить к плате следующим образом (VCC – 3,3В):

Для тех, кто использует плату «145», приведена таблица подключений и фото платы:

Контакт разъема

Узел платы «145»            

Вывод платы «STM32F4DISCOVERY»

 

ЖКИ индикатор

 

X1_EXT.5

D4

PE7/TIM1_ETR

X1_EXT.6

D5

PD2/TIM1_ETR

X1_EXT.7

D6

PE14

X1_EXT.8

D7

PE15

X2_EXT.1

E

PA1

X2_EXT.3

RW

PC1

X3_EXT.1

RS

PB11

X3_EXT.2

LIGHT

PE5

 

АЦП

 

X2_EXT.3

R19 (установить J5, X18 в 2-3, на X13/1 подать 3V3)

PC1

X2_EXT.4

R20 (установить J6, X19 в 2-3, на X13/2 подать 3V3, X4 снять (сигнал KEY_SCAN))

PC2


 1. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с UART. Прием данных.

Рассмотрены примеры приема данных, их буферирования, декодирования принятых команд и данных, обработка ошибок.

Примеры программ даны для IDE  «CooCox®»  [4].

 

2. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с ЦАП. Программный запуск.

Рассмотрим работу с ЦАП (цифро-аналоговым преобразователем, DAC). В микроконтроллере есть 2 канала ЦАП с разрешением 12 бит [1,2]. Они предназначены для формирования аналоговых сигналов на выходах микроконтроллера.

Выходы ЦАП находятся на выходах микроконтроллера PA4 (29) и PA5 (30). Будем использовать канал 1 преобразователя - DAC1, расположенный на выводе PA4.

Осциллограммы наложения шума и треугольного сигнала на пилообразный сигнал:

Примеры программ даны для IDE  «CooCox®»  [4].

 

3. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с CAN. Передача данных с определенным интервалом.

                Рассмотрим задачу передачи данных с определенным интервалом отправки. Программа написана на основе предыдущего занятия по CAN (см. №15 статья 3). Добавим в нее следующие блоки:

- в качестве генератора для задания интервалов времени будем использовать таймер TIM4

- настроим таймер TIM4 на период 1 мс

- для передачи сообщений CAN сделаем структуру данных «CAN_Packet», члены которой будут содержать идентификатор пакета, количество данных и сами данные

- объявим необходимое количество таких структур для конкретных сообщений

- создадим программные таймеры для отсчета интервалов передачи сообщений и флаги окончания счета интервалов

- в функции обработки прерывания будем вести счет временных интервалов и устанавливать флаги окончания счета интервала

- в основном цикле программы будем передавать сообщения ми сбрасывать флаги окончания счета интервала

Пример программы сделан для компилятора  «MikroC PRO for ARM» [4].

 

4. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с CAN. Декодирование принятых данных.

                Рассмотрим задачу распознавания принятых  данных. Программа сделана на основе предыдущего занятия по CAN (см. №15 статья 4). Добавим в нее следующие блоки:

- для передачи сообщений CAN сделаем структуру данных «CAN_Packet», члены которой будут содержать идентификатор пакета, количество данных и сами данные

- объявим необходимое количество таких структур для конкретных сообщений

- будем проверять принятое сообщение с заданными и зажигать соответственно зеленый и красный светодиоды  на плате

Пример программы сделан для компилятора  «MikroC PRO for ARM» [4].

 

5. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Программный сброс.

                Рассмотрим задачу программного сброса микроконтроллера. Для демонстрации при запуске программы сделаем однократное «мигание» светодиода, а затем в основном цикле будем формировать программный сброс. В результате светодиод будет мигать постоянно.

Пример программы сделан для компилятора  «MikroC PRO for ARM» [4].

 

6. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Чтение идентификатора типа микроконтроллера и уникального номера.

                Рассмотрим задачу получения идентификатора типа микроконтроллера и уникального номера. Способы их получения различные.

Пример программы сделан для компилятора  «MikroC PRO for ARM» [4].

Результат работы программы:

CPUID = 410fc241

Unique device ID = 3600393432470833303135 

 


В избранное