реклама на сайте
подробности

 
 
> SPI в SAM7S32, Не взводится бит запонения приемного буфера
condor
сообщение Nov 11 2006, 14:27
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 93
Регистрация: 18-06-05
Из: Kyiv, Ukraine
Пользователь №: 6 126



После посылки байта в регистр SPI_TDR, бит заполнения буфера приема должен взвестись. но этого почему-то не происходит.
Где я мог ошибиться? Может еще что-то настроить надо?
Или этот бит работает только в slave mode?

При первой эмуляции после подачи питания, первый while проскакивает и зависает на втором. При дальнейших эмуляциях - зацикливается уже на первом.

Код
AT91F_SPI_CfgPMC ();
AT91F_SPI_Reset (AT91C_BASE_SPI);
AT91F_SPI_CfgMode (AT91C_BASE_SPI, AT91C_SPI_MSTR);
AT91F_SPI_CfgCs (AT91C_BASE_SPI, 0, AT91C_SPI_NCPHA | ((24 << 8) & AT91C_SPI_SCBR));
AT91F_SPI_Enable (AT91C_BASE_SPI);

char temp;
AT91C_BASE_SPI->SPI_TDR = 0xFF;
while (!(AT91C_BASE_SPI->SPI_SR & AT91C_SPI_RDRF));
temp = (AT91C_BASE_SPI->SPI_RDR) & 0xFF;

AT91C_BASE_SPI->SPI_TDR = 0xFF;
while (!(AT91C_BASE_SPI->SPI_SR & AT91C_SPI_RDRF));
temp = (AT91C_BASE_SPI->SPI_RDR) & 0xFF;
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 01:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016