Очень надеюсь на помощь! мучаюсь уже 2 дня, виснет на функции f_open. Перепробовал всё. Карточки менял. Режимы менял. Функция не создает новых, не открывает уже существующих. Тупо виснет. Версия куба 5.0.0, и 4.24.0. SD карта монтируется нормально.
Я для экспериментов нашёл в столе совсем старые карточки размером 1 и 4ГБ. В-общем, указанные настройки у меня не пошли. Жутко расстроился, думал, плату плохо спроектировал. Но в результате оказалось, что для них надо использовать 1bit интерфейс, работающий на частоте 24, а не 48 МГц. И, поскольку у меня сокет для карточки находится прямо на плате, а не подключается длинными проводами через разъёмы, то никаких резисторов не надо. И да, хоть при подключении FF к проекту Кубик требует указать пин для определения наличия карточки в сокете, он нигде этот бит не проверяет. И утверждает, что всё смонтировано нормально даже при пустом сокете. Т.е. этот пин надо анализировать самостоятельно. И для него как раз устаналивать pull-up резистор на входе соответствующего пина.
Очень долго запускал, в итоге всё срослось. Какие были у меня трудности - подтяжки нужны, без них не работало. Остановился на 51кОм. SD4BIT так и не заработал, отказывался монтировать, возвращал ошибку. Делитель частоты менял от 3 до 200. Пришлось остановиться на SD1BIT режиме. Так же карты отказывались работать пока не сделал некоторым f_mkfs(). Кстати, последний аргумент в f_mount() "0" (отложенный) всегда выдаёт FR_OK, лучше поставить "1" чтобы сразу было понятно, смонтировало или нет. Ну и ругался на имя файла (видимо длинное слишком придумал), тут уж надо настройки FatFS подбирать. Так же, если выбираете MaxStackSize 4096 в настройка SDIO то в настройках проекта надо увеличить MinStackSize до 4096 (0x1000) а то грозит ХардФолт.
Ваша реклама настолько глупа и бессмысленна и я никогда ее не смотрю. Неужели вы настолько жадны, то не допускаете, что есть люди, которые ценят свободу выбора и не допускают таких ултиматумов, которые позволяет себе Ютуб. Ваше требование является обычным, примитивным вымогательством и я ненавижу вас за это, как и всех прочих воров, мошенников и аферистов. Почему же тогда вы не отстаиваете свое право рассылать спам в письмах электронной почты? Где граница вашей жадности. Ваши продукты и так приносят вам десятки миллиардов долларов прибыли. Но вам этого мало. Мне 65 лет и я работаю в мире компьютеров с 1979 года, но первый раз в жизни сталкиваюсь с такого рода вымогательским шантажем. Те, кто в руководстве вашей компании принял такое решение, не достойны находиться в ряду великих людей, благодаря которым произошла современная компьютерная и информационная революция. И я хочу знать их имена. Прошу довести мое мнение до руководства компании.
Дорого дня. А есть ли решение без pin detect sd. Проверять наличие sd карты в слоте. Пробовал по разному она определяет её только пока её не передернешь в слоте. После прошивки и нажатие повторно на reset на плате она опять не определяется.
Начал с просмотра подключения W5500. Поскольку там тоже используется SD Card, посмотрел там список видео, рекомендованных к просмотру перед работой с чипом. Не пожалел - куча полезной базовой информации. Спасибо!
hi my friend. ı tried this code but its not working because ı'm using fatfs version R0.12 (cubemx 4.26.1). I read R0.11 is working with cubemx version (4.22.1). can you help about this wrong? I will watch and follow you :)
Огромное Вам СПАСИБО, ВЛАДИМИР за Ваши уроки !!!! Два дня бился с этим кодом, весь вспотел ))) Ставьте Куб версии 4.23.0 и отключите в FATFS Configuration на вкладке IPs instances-> Use dma template -> Disabled. Тогда все будет ОК !
Народ, если у кого-то не получается состыковаться с флешкой, то попробуйте в настройках SDIO величить число в SDIOCLK clock divide factor, у меня на делитиле 3 получилось лично
В версии 4.26.1 в настройках FATFS во вкладке IPs instances параметр Use dma template по умолчанию все еще Enabled. Нужно не забывать вручную переключать в Disabled. В версии 4.27 этот параметр исправлять не нужно.
Пробую подружить карточку с седьмой серией. Зависает...Версия куба 4.26.0 Версия пакета контроллера 1.11.0 Неужели ещё не поправили? Нужно переходить на раннюю версию или всё же можно поправить код библиотеки? Спасибо большое за уроки!
Кстати, один из вариантов сделать "переходник" для микросд это "испортить" адаптер для этих флешек для подключения к ноутбуку. Обычно такой переходник идёт в комплекте с флешкой. Там как раз к контактам переходника можно припаять гребёнку типа мама, вот сам только что такой "колхоз" сделал
Hi , thank you for your great tutorial about stm32. I want to receive data from USART and write that data to sd card. I can get data and write to sd card but in my txt file only exist latest data !! Can you help me how to write my code to could write over and over in sd card ??
hesam Ghamari hey I am trying to figure out how to read the last/most recent data written to a file. Did you figure it out yet. The way this seems to setup You will need to take all the data. I know there is a api for last data in file cannot find it...
+narod stream Thank you for your reply but I am using stm32f303c and it doesn't support SDIO that's why I am using SPI, any suggestions would be appreciated.
Спасибо за уроки. Собирал для STM32F407VET6, но что то не получается выдает ошибку на строке: if(f_mount(&SDFatFs,(TCHAR const*)SD_Path,0)!=FR_OK) . Не подскажете что делать? У вас смотрел на видео все нормально.
И Вам спасибо за интерес к ресурсу! Дело в том, что изменилась библиотека FATFS. Поэтому кое-какие функции работают несколько по-другому. Надо заходить на сайт и читать описание функций и того, что они требуют.
Добрый день нашел STM32CubeMX 4.21, собрал проект выдает упорно ошибку: fatal error: "ff.h" file not found. Странно ничего не менял, не подскажете что сделал не так?
Я тоже однажды с такой ерундой парился долго. Потом просто снял питание с карты, и потом подал его заново, перезагрузив после контроллер. И всё заработало.
Ну вообще задумки есть, но проект ещё не начат. Мало, так сказать, вменяемого методического материала. Но двигаться в этом направлении непременно надо.
Все привет!..Подскажите советом пожалуйста. Подключаю карту SD, пользуюсь CMSIS библиотеками...Так вот, при отладке (в пошаговом режиме) инициализация проходит без проблем! А вот когда программа записана в микроконтроллер, то инициализация проходит через раз (два..три..)...резисторы внешние убрал, пробовал без них, подключал внутренние подтягивающие, и во всех случаях картина одинакова...При запуске программы в режиме отладки не пошагово ( до курсора, курсор в конце программы)..инициализация виснет...т.к. возникает таймаут по ответу..вот такие дела...Что может быть, кто сталкивался??
Значит, отписываюсь..Может кому-нибудь пригодиться . Причина была в следующем: после команды CMD0, я не ждал появление флага CMDSENT, а сразу приступал дальше к выполнению алгоритма инициализации, видимо, что-то накладывалось друг на друга и вот имел такой результат...Теперь все работает)) Так что имейте ввиду))