Работа с 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> |