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

 
 
> STM32 HAL SPI ошибка или глюки IAR,, ошибка чтения SPI с помощью HAL от CubeMX
Pasa
сообщение Jul 27 2016, 10:20
Сообщение #1


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

Группа: Свой
Сообщений: 107
Регистрация: 4-03-09
Из: Беларусь, Минск
Пользователь №: 45 665



STM32F051, IAR, CubeMX

Читаю в пакетном режиме два регистра - ответ правильный. Добавляю чтение 3-его регистра - в приемном буфере ерунда.
На осцилографе картинка нормальная - все диаграмы и ответы красивые и правильные...

В парметрах функции пробовал и 3 сразу читать и в цикле по одному байту - не получается....

И вот так уже попробовал:
Код
uint8_t localRxBuf[4];
uint8_t data1,data2,data3;

HAL_SPI_Receive(&hspi1, (uint8_t*)&localRxBuf[0], 1, 10000);
data1 = localRxBuf[0];
HAL_SPI_Receive(&hspi1, (uint8_t*)&localRxBuf[0], 1, 10000);
data2 = localRxBuf[0];
//HAL_SPI_Receive(&hspi1, (uint8_t*)&localRxBuf[0], 1, 10000);
//data3 = localRxBuf[0];
придобавлении третьего чтения портятся data1,data2,data3......мистика какая-то. Повторюсь - на осцилографе все красиво и правильно

Такое ощущение, что HAL-библиотека глючит...
внутрь HAL что-ли полезть

Сообщение отредактировал IgorKossak - Jul 27 2016, 14:30
Причина редактирования: [codebox] для длинного кода. [code]-для короткого!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rudy_b
сообщение Jul 28 2016, 13:57
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



Что-то я не понял, у вас SPI в режиме slave или master?
Если в slave - то дергание CS недопустимо, в этом режиме это входной сигнал.
А если master - вы сами должны дергать CS. Проверьте, что периферия правильно на него реагирует.

С работой SPI в режиме slave через DMA (не IT) действительно есть какие-то проблемы (f207). Они есть даже без HAL. Очень долго мучился заставляя его правильно работать, но, в конце концов, это удалось. Подробностей уже не помню, но долго возился с тем, чтобы не было перестановки байт и не пропадал первый байт посылки.
Go to the top of the page
 
+Quote Post
alag57
сообщение Jul 28 2016, 14:41
Сообщение #3


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

Группа: Участник
Сообщений: 130
Регистрация: 26-06-06
Из: Березовский
Пользователь №: 18 355



В CR2 есть такой хитрый битик - FRXTH, так вот у меня получилось только так:

CODE

void SPI1_WriteRead(uint8_t *tx_buf, uint8_t *rx_buf, uint8_t length)
{
SPI1_CS_On();
SPI1_WriteRead_NotCS(tx_buf, rx_buf, length);
SPI1_CS_Off();
}

void SPI1_WriteRead_NotCS(uint8_t *tx_buf, uint8_t *rx_buf, uint8_t length)
{
uint8_t rx_length = length;

if (length > 1)
{
SPI1->CR2 &= ~SPI_CR2_FRXTH; // Threshold = 16
}
else
{
SPI1->CR2 |= SPI_CR2_FRXTH; // Threshold = 8
}

while (length)
{
while ((SPI1->SR & SPI_I2S_FLAG_TXE) == 0);

if (length > 1)
{
SPI1->DR = *((uint16_t *)tx_buf);
tx_buf += 2;
length -=2;
}
else
{
*(__IO uint8_t *)&SPI1->DR = *tx_buf++;
length--;
}

while ((SPI1->SR & SPI_I2S_FLAG_RXNE) == 0);

if (rx_length > 1)
{
*((uint16_t *)rx_buf) = SPI1->DR;
rx_buf += 2;
rx_length -= 2;
if (rx_length <= 1)
{
SPI1->CR2 |= SPI_CR2_FRXTH; // Threshold = 8
}
}
else
{
(*rx_buf++) = *(__IO uint8_t *)&SPI1->DR;
}
}
}

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pasa   STM32 HAL SPI ошибка или глюки IAR,   Jul 27 2016, 10:20
- - serglg   хочу заметить, что с HAL_SPI_Receive и у меня како...   Jul 27 2016, 15:57
|- - Pasa   Цитата(serglg @ Jul 27 2016, 19:27) Пока ...   Jul 27 2016, 17:27
|- - serglg   Цитата(Pasa @ Jul 27 2016, 23:27) ...... ...   Jul 28 2016, 04:14
- - Pasa   В инициализации SPI в HAL: Код if(hspi-...   Jul 27 2016, 20:17
- - tehn1k   Как Вы выбираете чтение того или иного регистра, е...   Jul 28 2016, 05:41
|- - serglg   Цитата(tehn1k @ Jul 28 2016, 11:41) Как В...   Jul 28 2016, 06:09
|- - tehn1k   Цитата(serglg @ Jul 28 2016, 10:09) Мне н...   Jul 28 2016, 06:55
|- - Lagman   Цитата(serglg @ Jul 28 2016, 09:09) Мне н...   Jul 28 2016, 09:35
|- - k155la3   Цитата(Lagman @ Jul 28 2016, 12:35) А зач...   Jul 28 2016, 10:18
- - k155la3   Цитата(Pasa @ Jul 27 2016, 13:20) STM32F0...   Jul 28 2016, 06:09
|- - Pasa   Обмен идет с CC2500 Цитата(k155la3 @ Jul 28 ...   Jul 28 2016, 19:48
- - k155la3   Цитата(Pasa @ Jul 27 2016, 13:20) И вот т...   Jul 28 2016, 12:45
- - x893   Функция SPI Receive в HAL занимает строк 20 из них...   Jul 28 2016, 14:17
|- - Pasa   Цитата(x893 @ Jul 28 2016, 17:47) Функция...   Jul 28 2016, 20:08
|- - k155la3   Цитата(Pasa @ Jul 28 2016, 23:08) Никаког...   Jul 29 2016, 06:47
- - x893   Ничего хитрого The RXNE flag is set depending on t...   Jul 28 2016, 16:14
|- - alag57   Цитата(x893 @ Jul 28 2016, 21:14) Ничего ...   Jul 29 2016, 03:11
- - x893   Проверил с stm32f030 и CC2500 - всё работает как ч...   Jul 28 2016, 19:49
- - serglg   Ну вот и моя хитрость. Чтение делаю 3 (три) раза п...   Jul 29 2016, 06:12
|- - alag57   Цитата(serglg @ Jul 29 2016, 11:12) Ну во...   Jul 29 2016, 07:30
||- - serglg   Цитата(alag57 @ Jul 29 2016, 13:30) Это н...   Jul 29 2016, 08:36
||- - alag57   Цитата(serglg @ Jul 29 2016, 13:36) Вы на...   Jul 29 2016, 13:33
|- - esaulenka   Цитата(serglg @ Jul 29 2016, 09:12) Ну во...   Jul 29 2016, 13:42
- - Pasa   На сегодняшний момент вызывает вопрос код в HAL_SP...   Jul 29 2016, 09:04
- - k155la3   Цитата(Pasa @ Jul 27 2016, 13:20) (1) HAL...   Jul 29 2016, 10:03
|- - Pasa   Цитата(k155la3 @ Jul 29 2016, 13:33) Позв...   Jul 29 2016, 10:55
||- - k155la3   Цитата(Pasa @ Jul 29 2016, 13:55) вы счит...   Jul 29 2016, 12:12
|- - esaulenka   Цитата(k155la3 @ Jul 29 2016, 13:03) Позв...   Jul 29 2016, 13:22
- - Pasa   может здесь и говорится о нашей проблемке ..... ...   Jul 29 2016, 15:04
- - serglg   Открываются глаза. Народ говорит, что вся разница ...   Jul 30 2016, 05:43
- - Pasa   На сегодняшний момент моя примочка по предваритель...   Aug 1 2016, 07:57
|- - serglg   Цитата(Pasa @ Aug 1 2016, 13:57) На сегод...   Aug 1 2016, 12:14
|- - Pasa   Цитата(serglg @ Aug 1 2016, 15:44) Фактич...   Aug 1 2016, 19:24
|- - serglg   Цитата(Pasa @ Aug 2 2016, 01:24) Собствен...   Aug 2 2016, 13:17
- - ave!   Прочитал всю ветку, пробовал все варианты под CooC...   May 9 2017, 18:34
- - serglg   Цитата(ave! @ May 10 2017, 00:34) Про...   May 10 2017, 05:04


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

 


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


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