Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/47: Рейтинг темы: голосов - 47, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 29.12.2015
Сообщений: 37

stm32f4 + USB Mass Storage. код ошибки 43 HAL,KEIL

19.05.2017, 16:00. Показов 10089. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток) Сразу скажу для меня stm32 нечто новое.
Осваиваю с простого. Есть плата с stm32f407zet6. Что требуется: что бы плата определилась в системе как съемный диск. На данном этапе нужно создать буфер в ОЗУ, размер ОЗУ 192 кбайта, мне много не надо для эксперимента)) хватит вполне 64 кбайт.
по умолчанию заданно
Code
1
2
#define STORAGE_BLK_NBR         0x10000
#define STORAGE_BLK_SIZ          0x200
я так понимаю 65536 блоков(секторов) по 512 байт = 33554432 = 32мбайт, много.
используя простой калькулятор у меня получилось так
Code
1
2
#define STORAGE_BLK_NBR         0x80
#define STORAGE_BLK_SIZ          0x200 // 64 кбайта
создал переменную
Code
1
uint8_t eMMC[STORAGE_BLK_SIZ * STORAGE_BLK_NBR];
добавил код в функции
Code
1
2
3
4
5
6
7
8
int8_t STORAGE_Read_FS (uint8_t tum,uint8_t *buf, uint32_t blk_addr, uint16_t blk_len)
{
uint32_t *tempbuff = (uint32_t *)buf;
for (uint32_t count = 0; count < blk_len ; count++){ // zopolnit btok
*(tempbuff + count) = eMMC[(blk_addr*STORAGE_BLK_SIZ)+ count];
}
return (USBD_OK);
}
и на оборот при записи
Code
1
2
3
4
5
6
7
8
9
10
11
int8_t STORAGE_Write_FS (uint8_t tum,
uint8_t *buf,
uint32_t blk_addr,
uint16_t blk_len)
{
uint32_t *tempbuff = (uint32_t *)buf;
for (uint32_t count = 0; count < blk_len ; count++){ // zopolnit btok
eMMC[(blk_addr*STORAGE_BLK_SIZ)+ count]=*(tempbuff + count);
}
return (USBD_OK);
}
в итоге получаю, не известное устройство, код 43, "Это устройство было остановлено, поскольку оно сообщило о возникновении неполадок. (Код 43)"

Ладно, создаю еще 1 проект, точно такой же но без моего кода, все как Cube выдал, компилирую заливаю тоже самое.

пустой проект

Я даже не понимаю что искать.
Использую Cube+Keil5
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.05.2017, 16:00
Ответы с готовыми решениями:

Вопрос по HAL USB MASS STORAGE.
Сгенрил проект с freertos и MSC. Эмулирую файловую систему с с помощью библиотеки и программирую полученным другой процессор. С чтением...

USB Mass Storage Device на STM32F4
Использую микроконтроллер STM32F407. Сделал в своем устройстве поддержку USB Mass Storage Device чтобы лишний раз не вынимать карту памяти....

USB mass storage class
Я пытаюсь сделать вот что - всунуть STM32f4 по USB в комп, что бы он работал как mass storage divice, ну то есть чтобы виндой он...

4
0 / 0 / 0
Регистрация: 29.12.2015
Сообщений: 37
21.05.2017, 01:04
Дополнение) после нескольких часов экспериментов. Есть немного результата. Если скомпилировать пустой(по умолчанию) проект и залить его в контролер то можно получить запоминающее устройство с (Запуск этого устройства невозможен. (Код 10)) если подключить устройство к юсб с зажатой кнопкой сброса на 0.3-0.5сек.
В обще пробовал делать как тут : http://microtechnics.ru/stm32cube-i-usb ... e-sd-card/ собственно говоря у меня не подключен пин USB Dysconnect Pin, и в проекте куба тоже, но эксперименты проводил, прописывал его через куб, припаивал резистор и подключал его к 3.3v в надежде что устройство хотя бы будет подключатся\отключатся в системе, тишина. На плате есть SD но программное подключение результатов не дает.

На плате с stm32f407zet6 согласно схеме стоит резистор от D+ к 3v3 1.5к, я посмотрел схему STM32F746G_DISCO, там нет такого резистора по цепям D+ FS. Плата не официальная(stm32f407zet6), может его там и не должно быть?
0
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
21.05.2017, 01:18
Цитата Сообщение от sirvmv
На плате с stm32f407zet6 согласно схеме стоит резистор от D+ к 3v3 1.5к, я посмотрел схему STM32F746G_DISCO, там нет такого резистора по цепям D+ FS. Плата не официальная(stm32f407zet6), может его там и не должно быть?
У F4 есть встроенный резистор на D+, ничего паять не нужно.
0
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 108
21.05.2017, 18:55
В очередной раз (по usb вопросам), не вдаваясь в вашу писанину напишу:
- устанавливаем USBPCap
- устанавливаем wireshark
Запускаем сниффер, вставляем вашу флешку. Собираем логи, смотрим - и сразу все станет понятно.
ЗЫ. если устройство не обнаружилось, то:
- битый дескрипток
- неверные реквесты на запросы при инициализации.
0
0 / 0 / 0
Регистрация: 29.12.2015
Сообщений: 37
25.05.2017, 18:28
Цитата Сообщение от Sow_Tooth
ЗЫ. если устройство не обнаружилось, то:
- битый дескрипток
- неверные реквесты на запросы при инициализации.
Даже звучит не логично, куб генерирует кривой код?
Нашел проблему, VBUS simsyk надо было выключить, почему то по умолчанию 3х пиновое подключение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.05.2017, 18:28
Помогаю со студенческими работами здесь

USB on stm32f107 + mass storage
Прошу помочь новичку. Задача-сделать хост на stm32f107, подключить к нему флэшку и определить, что она подлючена. В наличии имеется плата...

Stm32 USB host Mass Storage
Приветствую. Столкнулся с проблемой. Пытаюсь заюзать STM32f207 как хост. Сгенерировал проект в CUBE MX v4.27.0, где стмка будет в роли...

Вопрос по USB Mass storage на stm32f103
с помощью CubeMX прикрутил стандартную библиотеку к процессору. И собственно возник вопрос.. Насколько я понимаю, я должен реализовать...

STM32F103C8 + W25Q64 USB Mass Storage Device
Привет всем тем кто зашел в тему:) Хочу сделать Mass Storage Device используя внешнюю флеш-память W25Q64. У меня получилось создать...

STM32 USB MASS STORAGE in FLASH memory
Привет! Есть программа, которая заставляет плату с МК STM32F103RET7 работать в режиме USB MASS STORAGE, причем по USB он отдает куски...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru