|
STM32 HAL SPI ошибка или глюки IAR,, ошибка чтения SPI с помощью HAL от CubeMX |
|
|
|
Jul 27 2016, 10:20
|
Частый гость
 
Группа: Свой
Сообщений: 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]-для короткого!!!
|
|
|
|
|
 |
Ответов
|
Jul 29 2016, 10:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(Pasa @ Jul 27 2016, 13:20)  (1) 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]; (2) . . . . Позволю себе. Если после точки (1) Вы не упоминаете, и не используете явно массив localRxBuf, т.е. Код (2) localRxBuf[2] = localRxBuf[3] + localRxBuf[4]; // обман компилятора MyCalc( localRxBuf[2] ); ..... и тожесамое по data123, то даже при полностью отключенной оптимизации считайте, что массива в (1) уже нет.Точнее, это компилятор так считает  И память которая там была, уже занята под другие данные (или не занята). Или там стек или .... На то, что глобальное - не расчитыайте. Разве что есть на эти данные ссылка по extern из других модулей. И это не оптимизация
|
|
|
|
|
Jul 29 2016, 13:22
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Цитата(k155la3 @ Jul 29 2016, 13:03)  Позволю себе. Если после точки (1) Вы не упоминаете, и не используете явно массив localRxBuf, т.е. Код (2) localRxBuf[2] = localRxBuf[3] + localRxBuf[4]; // обман компилятора MyCalc( localRxBuf[2] ); ..... и тожесамое по data123, то даже при полностью отключенной оптимизации считайте, что массива в (1) уже нет.Точнее, это компилятор так считает  И память которая там была, уже занята под другие данные (или не занята). Или там стек или .... На то, что глобальное - не расчитыайте. Разве что есть на эти данные ссылка по extern из других модулей. И это не оптимизация  Так. Ещё раз, медленно и по буквам. Упрощаю до предела. Пишем Код void DoIt (char * p) { for (int i = 0; i < 5; i++) p[i] = i; }
.... char data[10]; DoIt (data); // data больше не используем Вы утверждаете, что DoIt() будет записывать не в data[], а портить стек? Как интересно... (да, я в курсе, что особо умный компилятор не будет делать НИЧЕГО - выкинет и массив, и функцию заполнения. Но изначальный этот HAL_SPI_Receive() выкинуть так просто нельзя - у него внутри volatile много).
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
Сообщений в этой теме
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 Ничего хитрого
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 Pasa Цитата(k155la3 @ Jul 29 2016, 13:33) Позв... Jul 29 2016, 10:55  k155la3 Цитата(Pasa @ Jul 29 2016, 13:55) вы счит... Jul 29 2016, 12:12 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|