Работа с UART (ASM) » History » Version 13
« Previous -
Version 13/27
(diff) -
Next » -
Current version
krufter_multiclet, 04/16/2013 02:51 PM
Работа с UART (ASM)¶
Рассмотрим передачу и приём сообщений посредством интерфейса UART подробнее(на ассемблере).
В приведённых ниже примерах кода используется список констант, который необходимо подключить директивой " .include "
.include "HDL50001_pcf.inc"
а) Передача по UART¶
1. Разрешаем алтернативные функции порта.¶
В настоящее время выпущены две отладочные платы, в которых задействованы UART0 и UART3.
Рассмотрим команды ассемблера для разрешения алтернативных функций порта.
Для UART0:
getl 0x00000F00 wrl @1, GPIOB_BPS
Для UART3:
getl 0x00000F00 wrl @1, GPIOD_BPS
2. Настраиваем UART на передачу, устанавливаем скорость работы.¶
Для настройки UART на передачу запишем следующее значение в регистр управления:
Для UART0:
getl 0x00000002 wrl @1, UART0_CR
Для UART3:
getl 0x00000002 wrl @1, UART3_CR
Для установки скорости используется коэффициент деления BRDIV = Fsys/(8*Fuart - 1)
Для скорости 38400 кбит/с:
Для UART0:
getl 0x00000104 wrl @1, UART0_BDR
Для UART3:
getl 0x00000104 wrl @1, UART3_BDR
3. Проверка буфера передатчика на полноту.¶
Для UART0:
fifo_tx_full: rdl UART0_ST getl 0x00000200 and @1, @2 je @1, fifo_tx_full jne @2, paragraph complete
4. Передача байта по UART.¶
Для UART0:
getb 0xAB wrb @1, UART0_DATA
Для UART3:
getb 0xAB wrb @1, UART3_DATA