Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

STM32F4. Урок 12 - UART

Данная библиотека позволяет использовать до 6 UART микроконтроллера.
UART, которые будут использоваться, должны быть объявлены в Н- и C-файлах. В структуре "UART []" должны быть указанны все необходимые параметры (то есть расположение выводов, скорость передачи данных и т.д.).

Библиотека содержит функции передачи данных по UART и функцию проверки, пришла ли строка (передатчик должен поддерживать функцию тегов, например возврат указателя к началу строки).
Прием данных происходит в фоновом режиме с использованием прерывания.
В примере используется 2 UART:

  • COM2 по UART2 [TX=PA2], [RX=PA3] с 115200 Baud
  • COM3 по UART3 [TX=PD8], [RX=PD9] с 115200 Baud

Требования:

   Подключаемые модули CooCox-IDE: GPIO, USART, MISC.
   Поддерживаемые библиотеки: отсутствуют.

Перечисления:

typedef enum {
  NONE = 0,  // нет идентификатора в конце
  LFCR,      // новая строка + перевод каретки (0x0A,0x0D)
  CRLF,      // перевод каретки + новая строка (0x0D,0x0A)
  LF,        // только новая строка (0x0A)
  CR         // только перевод каретки (0x0D)
}UART_LASTBYTE_t;

typedef enum {
  RX_EMPTY = 0,  // Ничего не принято
  RX_READY,      // Содержание приемного буфера
  RX_FULL        // Приемный буфер заполнен
}UART_RXSTATUS_t;

Функции:

void UB_Uart_Init(void);                                                        // инициализация UARTов
void UB_Uart_SendByte(UART_NAME_t uart, uint16_t wert);                         // Отправить байт через UART
void UB_Uart_SendString(UART_NAME_t uart, char *ptr, UART_LASTBYTE_t end_cmd);  // отправить строку через UART
UART_RXSTATUS_t UB_Uart_ReceiveString(UART_NAME_t uart, char *ptr);             // прием строки через UART

Пример использования:

//--------------------------------------------------------------
// File     : main.c
// Datum    : 24.02.2013
// Version  : 1.0
// Autor    : UB
// EMail    : mc-4u(@)t-online.de
// Web      : www.mikrocontroller-4u.de
// CPU      : STM32F4
// IDE      : CooCox CoIDE 1.7.0
// Module   : CMSIS_BOOT, M4_CMSIS_CORE
// Funktion : Demo der UART-Library
// Hinweis  : Diese zwei Files muessen auf 8MHz stehen
//              "cmsis_boot/stm32f4xx.h"
//              "cmsis_boot/system_stm32f4xx.c"
//--------------------------------------------------------------

#include "main.h"
#include "stm32_ub_uart.h"

int main(void)
{
  char buf[RX_BUF_SIZE]; // буфер для приема данных
  UART_RXSTATUS_t check;

  SystemInit(); // инициализация настроек кварца

  // инициализация UART
  // Com2 и Com3 работают со скоростью 115200 бод
  UB_Uart_Init();

  // Отправка двух строк через UART (с переходом к началу строки и возврат каретки)
  UB_Uart_SendString(COM2,"Hier ist UART2 [PA2,PA3]",LFCR);
  UB_Uart_SendString(COM3,"Hier ist UART3 [PD8,PD9]",LFCR);

  while(1)
  {
	  // проверка, приняты ли данные на UART2
	  check=UB_Uart_ReceiveString(COM2,buf);
	  if(check==RX_READY) {
		  // Если данные были получены
		  // вернуть в Echo
		  UB_Uart_SendString(COM2,buf,LFCR);
	  }
  }
}

В приложении проект CooCox и отдельная библиотека для использования в других проектах, а также программа - терминал. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.

Оригинал статьи

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (2) | Я собрал (0) | Подписаться

0
Gauss #
Библиотека применима только для F4 или можно использовать для других контроллеров STM32?
Ответить
0

[Автор]
Rough #
Если прописать инициализацию другого контроллера, то будет работать.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Конструктор: DDS генератор сигналов Печатная плата для усилителя "LM3886 + AD825"
вверх