|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 290
|
||||||
Не работает SPI (STM32F4)02.08.2016, 23:15. Показов 19954. Ответов 51
Метки нет (Все метки)
Добрый вечер!
Пытаюсь на самодельной плате с МК STM32F407VGT6 использовать SPI для взаимодействия с памятью от ST M25P20 (http://pdf1.alldatasheet.com/d... 25P20.html). Вот код с комментариями:
Аналогично не работает SPI3. Вопрос: почему, что не так? Уж всё соединено правильно, сигналы от ножки МК к ножке памяти проходят. Питание есть. Shyp select работает. Разве что проверить CLK и SDI/SDO не могу, т.к. нет осциллографа. Не может же сразу два SPI не отрабатывать... Может ошибка в коде? Возможно какие-то программные настройки самого МК надо сделать... Хотя Coosox сам все это делает, т.к. при программировании на плате Dyscovery подобной проблемы не возникало.
0
|
||||||
| 02.08.2016, 23:15 | |
|
Ответы с готовыми решениями:
51
SPI+ STM32F4 STM32F4 SD SPI FATFS STM32f4 SPI+CRC |
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 03.08.2016, 18:26 | |
|
Очередная жертва спл, не желающая читать.
Проверка TXE при транзакции SPI , четко говорит о том что документация не читала...
0
|
|
|
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 11
|
|||
| 03.08.2016, 18:44 | |||
|
Посмотрите исходники из примера, там используется SPI flash M25P64.
STM32F4xx_DSP_StdPeriph_Lib_V1.7.0\Proje ct\STM32F4xx_StdPeriph_Examples\SPI\SPI_ FLASH
0
|
|||
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 03.08.2016, 18:55 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
|
|||||||||||
| 03.08.2016, 19:11 | |||||||||||
|
Как не трудно догаться, при записи RXNE взводится, поэтому в writeSPI1 надо добавить
readSPI1(uint8_t address)добавить
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 03.08.2016, 21:13 | |
|
orm999, ваша проблема в том , что вы не читаете документацию а ищите знакомые буквы.
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 290
|
||
| 04.08.2016, 00:40 [ТС] | ||
Повторил пример, скопировав код инициализации (но со своими ножками и портами), запуска и чтения (8 бит подпись) - не работает... Потом даже взял рабочий проект для Dyscovery, удалил код у функции main и вставил новый - не работает... Может с тактированием что-то не в порядке?
0
|
||
|
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 11
|
||
| 04.08.2016, 12:07 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 04.08.2016, 15:11 | |
|
Ну так переведите предыдущий выделенному вами кусок, а не вырывайте фразу из контекста.
Там речь о потоковой передаче а у ТС одиночные транзакции. При одиночных или проверяем RXNE с последующей вычиткой буфера, или TXE с последующей проверкой BSY. А вообще учитесь читать и искать , "проблемы" SPI здесь обсосаны вдоль и поперек...
0
|
|
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 04.08.2016, 16:30 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 04.08.2016, 20:59 | |
|
Одной проверкой TXE не обойтись. Читайте RM внимательнее, опустошение буфера передачи не есть окончание транзакции. Заодно там же посмотришь пример потоковой транзакции. Да и приводить в качестве аргументов хабр - это отстой.
Не тебе ли я уже выкладывал скрины с примерами????
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 290
|
|
| 05.08.2016, 15:28 [ТС] | |
|
Есть какие-то средства диагностики, почему не работает SPI?
0
|
|
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 05.08.2016, 15:47 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
|||
| 05.08.2016, 16:11 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 701
|
|||
| 05.08.2016, 16:34 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 05.08.2016, 17:01 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 701
|
|
| 05.08.2016, 18:24 | |
|
Может быть... Мне просто непонятно... если СПИ работает только на передачу... пусть и потоковую... что вам даст RXNE... если приём вам не нужен изначально??? Может стоит один раз разобраться с флагами... их там не настолько уж и много... а не лепить код на удачу???
0
|
|
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 05.08.2016, 19:24 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
|
|
| 05.08.2016, 20:31 | |
|
Тогда надо удалить
uint8_t readSPI1(uint8_t address)
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 290
|
||||||
| 06.08.2016, 01:11 [ТС] | ||||||
|
Сделал как предложили выше:
Тактирование идет от HSI. Вроде частота 8МГц. Совершенно не понятно - почему не работает? Уж код по максимуму скопировал из примера для M25P64.
0
|
||||||
| 06.08.2016, 01:11 | |
|
Помогаю со студенческими работами здесь
20
stm32f4 + SPI (регистр SR) Инициализация SDHC по SPI STM32F4 STM32F4 (Discovery) SPI SD card Stm32f4 + spi + microsd еще разок D: HAL SPI DMA(STM32F4) + WIZ550io Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|