Project

General

Profile

Работа с UART (Си) » History » Version 8

krufter_multiclet, 04/18/2013 06:07 PM

1 1 krufter_multiclet
h1. Работа с UART (Си)
2 3 krufter_multiclet
3 3 krufter_multiclet
Рассмотрим передачу и приём сообщения по UART подробнее (на Си).
4 3 krufter_multiclet
5 4 krufter_multiclet
Сконфигурировать UART на передачу и приём сообщения на Си также просто как и на ассемблере мультиклеточного процессора. 
6 4 krufter_multiclet
Кроме того на Си для работы с UART доступны полезные функции и макросы, такие как вывод значения типа int, вывод строки,
7 4 krufter_multiclet
вывод заданного массива памяти данных.
8 5 krufter_multiclet
9 5 krufter_multiclet
В приведённых ниже примерах кода используется библиотека для работы с UART, которую необходимо подключить:
10 5 krufter_multiclet
<pre>
11 5 krufter_multiclet
#include <uart.h>
12 5 krufter_multiclet
</pre>
13 6 krufter_multiclet
14 8 krufter_multiclet
h2. а)Передача по UART
15 8 krufter_multiclet
16 6 krufter_multiclet
h3. 1. Настраиваем UART на передачу
17 6 krufter_multiclet
18 6 krufter_multiclet
Первым шагом задаём структуру (все элементы структуры можно посмотреть в файле uart.h).
19 6 krufter_multiclet
<pre>
20 6 krufter_multiclet
UART_InitTypeDef UART_InitStructure;
21 6 krufter_multiclet
</pre>
22 6 krufter_multiclet
23 7 krufter_multiclet
Затем инициализируем нужные параметры (незаданные параметры по умолчанию инициализируются нулём).
24 7 krufter_multiclet
<pre>
25 7 krufter_multiclet
UART_InitStructure.BaudRate = 38400; //скорость обмена данными
26 7 krufter_multiclet
    UART_InitStructure.TypeParity = 0x00000000; //тип контроля четности
27 7 krufter_multiclet
    UART_InitStructure.Parity = 0x00000000; //разрешение контроля четности
28 7 krufter_multiclet
    UART_InitStructure.FlowControl = 0x00000000; //разрешение аппаратного контроля
29 7 krufter_multiclet
    UART_InitStructure.Mode = 0x00000002; //разрешение передачи  
30 7 krufter_multiclet
</pre>