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

 
 
> STM32L476 HAL_SPI_TransmitReceive, Что же я всетаки делаю неправильно?
Димон Безпарольн...
сообщение Jun 12 2016, 17:11
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



Отладил на програмном SPI общение с памятью SPI. Решил попробовать HAL.

Код
unsigned int VF016_SPI_RW(unsigned char Tx)    //
{    Tx = 0x55;                                //
    uint8_t Rx;
    HAL_SPI_TransmitReceive(&hspi1, &Rx, &Tx, 1, 0x1000);
    return (unsigned int)Rx;
}


В итоге на MOSI выдается постоянный 0, SCK выдает исправно 8 тактов. Интерфейс 8-битный.

Настройки HAL:

Код
  hspi1.Instance = SPI1;
  hspi1.Init.Mode = SPI_MODE_MASTER;
  hspi1.Init.Direction = SPI_DIRECTION_2LINES;
  hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
  hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
  hspi1.Init.NSS = SPI_NSS_SOFT;
  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32;
  hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi1.Init.CRCPolynomial = 7;
  hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
  hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
  HAL_SPI_Init(&hspi1);


Сообщение отредактировал Димон Безпарольный - Jun 12 2016, 17:14
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Димон Безпарольн...
сообщение Jun 12 2016, 18:10
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



И правда Ваша. Второй случай когда HAL заработал почти сразу. Спасибо.

Сообщение отредактировал Димон Безпарольный - Jun 12 2016, 18:28
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 17:08
Рейтинг@Mail.ru


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