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

 
 
> 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
Ответов
x893
сообщение Jul 28 2016, 16:14
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Ничего хитрого
The RXNE flag is set depending on the FRXTH bit value in the SPIx_CR2 register: If FRXTH is set, RXNE goes high and stays high until the RXFIFO level is greater or equal to 1/4 (8-bit). If FRXTH is cleared (default), RXNE goes high and stays high until the RXFIFO level is greater than or equal to 1/2 (16-bit).
и сначала ставим CR2 а потом CR1

SPI1->CR2 = 0; // 16 bit
SPI1->CR1 = SPI_CR1_MSTR | SPI_CR1_SSI | SPI_CR1_SSM | SPI_CR1_SPE; // или как надо

В RM есть.

В HAL SPI_Init() есть код

/* Align by default the rs fifo threshold on the data size */
if(hspi->Init.DataSize > SPI_DATASIZE_8BIT)
{
frxth = SPI_RXFIFO_THRESHOLD_HF;
}
else
{
frxth = SPI_RXFIFO_THRESHOLD_QF;
}

Go to the top of the page
 
+Quote Post
alag57
сообщение Jul 29 2016, 03:11
Сообщение #3


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

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



Цитата(x893 @ Jul 28 2016, 21:14) *
Ничего хитрого

Хитрость для меня была в том, что CR2->FRXTH пришлось инициализировать при каждой
записи-чтении.

Цитата(x893 @ Jul 28 2016, 21:14) *
сначала ставим CR2 а потом CR1

Может быть винт от хитрости как раз в этом. Надо будет проверить.
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
- - rudy_b   Что-то я не понял, у вас SPI в режиме slave или m...   Jul 28 2016, 13:57
|- - alag57   В CR2 есть такой хитрый битик - FRXTH, так вот у м...   Jul 28 2016, 14:41
- - 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   Проверил с 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 - 05:20
Рейтинг@Mail.ru


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