|
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 27 2016, 15:57
|
Частый гость
 
Группа: Участник
Сообщений: 146
Регистрация: 19-07-16
Пользователь №: 92 603

|
хочу заметить, что с HAL_SPI_Receive и у меня какое-то подозрение (STM32L476). Пока я не вставил CHTREG = SPI1->DR:
HAL_SPI_Receive(&hspi1, OTVRC522, 1, 20); HAL_GPIO_WritePin(GPIOE, GPIO_PIN_12, GPIO_PIN_SET); CHTREG = SPI1->DR; BUFRC522[j]=OTVRC522[0];
у меня был полный дурдом. Там же регистр 16-битный, а прием 8-битный. Такое подозрение, что путаются ст. и мл. байты.
Сообщение отредактировал serglg - Jul 27 2016, 15:58
|
|
|
|
|
Jul 27 2016, 17:27
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 4-03-09
Из: Беларусь, Минск
Пользователь №: 45 665

|
Цитата(serglg @ Jul 27 2016, 19:27)  Пока я не вставил CHTREG = SPI1->DR:
HAL_SPI_Receive(&hspi1, OTVRC522, 1, 20); HAL_GPIO_WritePin(GPIOE, GPIO_PIN_12, GPIO_PIN_SET); CHTREG = SPI1->DR; BUFRC522[j]=OTVRC522[0]; ...... ээээ ....я не совсем с наскоку понял CHTREG = SPI1->DR; - вызываете HAL_Recive - CS вверх - CHTREG = SPI1->DR; кудато руками читаете приемные данные? название CHTREG непонятно... - зачем BUFRC522[j]=OTVRC522[0]; ......вроде выше все считано в CHTREG(что это такое?) ...или я не правильно понял...поясните пж-ста... p.s. у самого бродит идея весь прием переписать через CMSIS...только вот времени нету
|
|
|
|
|
Jul 28 2016, 04:14
|
Частый гость
 
Группа: Участник
Сообщений: 146
Регистрация: 19-07-16
Пользователь №: 92 603

|
Цитата(Pasa @ Jul 27 2016, 23:27)  ...... ээээ ....я не совсем с наскоку понял CHTREG = SPI1->DR; - вызываете HAL_Recive - CS вверх - CHTREG = SPI1->DR; кудато руками читаете приемные данные? название CHTREG непонятно... - зачем BUFRC522[j]=OTVRC522[0]; ......вроде выше все считано в CHTREG(что это такое?)
...или я не правильно понял...поясните пж-ста...
p.s. у самого бродит идея весь прием переписать через CMSIS...только вот времени нету CHTREG - совсем левая переменная. Чтобы было куда считать регистр данных SPI ( SPI1->DR). BUFRC522[j]=OTVRC522[0] - у меня все регистры платы RFID-RC522 (их там больше 30 рабочих) считывались в массив. А OTVRC522[0] - это же просто массив куда HAL-функция складывает текущий байт. Так вот. Без этой дурацкой строки (признаю полностью, что дурацкой): CHTREG = SPI1->DR; у меня читается в массив OTVRC522[0] черт те что. Таким образом что-то там в HAL-функциях по SPI у них накосячено. Цитата(Pasa @ Jul 28 2016, 02:17)  В инициализации SPI в HAL: Код if(hspi->Init.DataSize > SPI_DATASIZE_8BIT) { frxth = SPI_RXFIFO_THRESHOLD_HF; } else { frxth = SPI_RXFIFO_THRESHOLD_QF; } похоже тут надо наоборот.....может быть Ну вот, может и у меня тут потому глюк?
|
|
|
|
Сообщений в этой теме
Pasa STM32 HAL SPI ошибка или глюки IAR, Jul 27 2016, 10:20 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 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|