2015-05-05 4 views
-1

В настоящее время я работаю над GPIO на LPC1769, и у меня есть вопрос, который я не совсем понимаю. Предположив у меня есть следующие строки кода:LPC1769 Как работает FIOPIN?

LPC_GPIO2 -> FIODIR = 0xFFFFFFFF; 
FIO_SetMask(2, 0xFFFF0000, 1); 
LPC_GPIO2-> FIOPIN = 0xAAAAAAAA; 
a = GPIO_ReadValue(2); 

Теперь в этом случае первые 4 замаскированы FFFF, но почему делает дать мне 0x00002AAA? Как FIOPIN повлиял на бит?

+0

'первый 4 bits' ??? –

+0

'0xf' - четыре бита. – unwind

+1

@unwind right, но это не так, это '0xFFFF0000'? 4 слова, я бы сказал. –

ответ

0

Это потому, что ваше устройство только GPIO порт 2 от P2 [0] Р2 [13], поэтому очевидно, Р2 [14] P2 [31] всегда будет 0.

4

Как написано в техническом описании из LPC1769, страница 16:

порт 2: порт 2 представляет собой 32-битный порт ввода/вывода с индивидуальным контролем направления для каждого бита. Работа контактов порта 2 зависит от функции вывода , выбранной через блок подключения штырьков. Штыри с 14 по 31 этого порта недоступны.

Тогда все биты от 31 до 14 всегда равны 0.

Вы установите порт 0xAAAAAAAA но последний установленный бит в бит 13, то 0x00002AAA

+0

Спасибо! Это очень полезно! – Bolo

Смежные вопросы