Project

General

Profile

Работа с UART (ASM) » History » Version 9

krufter_multiclet, 04/16/2013 01:33 PM

1 1 krufter_multiclet
h1. Работа с UART (ASM)
2 1 krufter_multiclet
3 2 krufter_multiclet
Рассмотрим передачу и приём сообщений посредством интерфейса UART подробнее(на ассемблере).
4 2 krufter_multiclet
В приведённых ниже примерах кода используется список констант, который необходимо подключить директивой " .include "
5 2 krufter_multiclet
<pre>
6 2 krufter_multiclet
.include "HDL50001_pcf.inc"
7 2 krufter_multiclet
</pre>
8 2 krufter_multiclet
9 2 krufter_multiclet
10 2 krufter_multiclet
h3. а) Передача по UART
11 7 krufter_multiclet
12 9 krufter_multiclet
# Разрешаем алтернативные функции порта. 
13 2 krufter_multiclet
14 4 krufter_multiclet
В настоящее время выпущены две отладочные платы, в которых задействованы UART0(HW1-MCp04) и UART3(LDM-MCp04).
15 2 krufter_multiclet
Рассмотрим команды ассемблера для разрешения алтернативных функций порта.
16 2 krufter_multiclet
Для UART0:
17 2 krufter_multiclet
<pre>
18 5 krufter_multiclet
getl 0x00000F00
19 5 krufter_multiclet
wrl @1, GPIOB_BPS
20 5 krufter_multiclet
</pre>
21 5 krufter_multiclet
22 5 krufter_multiclet
Для UART3:
23 5 krufter_multiclet
<pre>
24 5 krufter_multiclet
getl 0x00000F00
25 5 krufter_multiclet
wrl @1, GPIOD_BPS
26 2 krufter_multiclet
</pre>
27 6 krufter_multiclet
28 9 krufter_multiclet
# Настраиваем UART на передачу, устанавливаем скорость работы.
29 6 krufter_multiclet
30 6 krufter_multiclet
Для настройки UART на передачу запишем следующее значение в регистр управления:
31 6 krufter_multiclet
Для UART0:
32 6 krufter_multiclet
<pre>
33 6 krufter_multiclet
getl 0x00000002
34 6 krufter_multiclet
wrl @1, UART0_CR
35 6 krufter_multiclet
</pre>
36 6 krufter_multiclet
37 6 krufter_multiclet
Для UART3:
38 6 krufter_multiclet
<pre>
39 6 krufter_multiclet
getl 0x00000002
40 6 krufter_multiclet
wrl @1, UART3_CR
41 6 krufter_multiclet
</pre>