[Решено] I2C Slave Presiver: Nucleo 64 F401

Flussoincrociato
Чт, 08 февраля 2018 г., 21:05
Привет,
Я пытаюсь поступить на борту, чтобы доставать связь с двумя Nucleo 64 F401 и двумя примерами, установленными в IDE с менеджером платы, пример подчиненного приемника I2C не работает, последовательный монитор показывает неверноемые символы.
Если вы прокомментируете, Чар, и отправляете только целое число, получатель читает всегда ноль.
Где проблема?
Спасибо

fpistm
Пт. 09 февраля 2018 г., 6:02
Я думаю, вы используете arduino_core_stm32?
Проблема известна, и существует исправление:
https: // github.com/stm32duino/arduino_c ... Проблемы/212

Flussoincrociato
Пт. 09 февраля 2018 12:20
Привет, fpistm, спасибо за ответ,
Я не уверен, что это та же проблема, эта ветка говорит о Freeze, мой код не замораживает, он просто возвращает плохие данные,
В любом случае я не понял, как это исправить:
-Я добавил линии Sugested в проволоке.CPP, и изменил AllocaterxBuffer на статический
-Измененная ручка.Xfercount, чтобы справиться.Xfersize в TWI.в
Перед изменением кода приемник показал плохие данные, после того, как эти кодовые изменения в серийном COM что -то показывает.
Я не прав?
Можете ли вы сказать, если бы я загрузил фиксированную кодовую версию Arduino Core STM32? Кто -нибудь загрузил это?
Если я теперь переустановите пакет через менеджер совета директоров, он должен работать?
большое спасибо.

fpistm
Пт. 09 февраля 2018 г. 14:18
Даже если проблема, упомянутая в GitHub, является заморозом, основной проблемой является использование буфера, не выделенного. Итак, это может быть случайной проблемой (замораживание или нет)...
Даже если я думаю, что он должен замерзнуть, когда буфер должен быть инициализирован с помощью нулевого.

В любом случае, если вы правильно применяете, исправление должно работать, кажется, вы столкнулись с другой проблемой.
Мы подняли проблему на GitHub после этого исправления, поскольку мы обнаружили, что IT -режим (обратный вызов RX/TX) не очень хорошо управляется. Может, вы встретили это дело.

Только один вопрос о вашей настройке оборудования. Линии I2C (SDA/SCL) должны иметь подтягивающий резистор на каждой линии, что это не будет работать.

Flussoincrociato
Пт. 09 февраля 2018 г. 16:00
Да наверняка, есть внешние вытягивающие резисторы на 1K, привязанные к 3.3v, и это работает хорошо, если я использую Arduino uno в качестве приемника.

Чтобы все было хорошо, я удалил Arduino IDE и все связанные папки, включая Arduino15.
Затем переустановлен Arduino IDE 1.8.4 и последняя версия Arduino Core 2018.1.18 в менеджере правления.
Теперь компиляция набросков для Nucleo 64 возвращает код выхода 1:
Arduino:1.8.4 (Windows 7), Scheda:"Nucleo-64, Nucleo F401RE, STLink, Generic Serial, None, Smallest (-Os default)" ... ... Using board 'Nucleo_64' from platform in folder: C:\Users\stefano corona\AppData\Local\Arduino15\packages\STM32\hardware\stm32\2018.1.18 Using core 'arduino' from platform in folder: C:\Users\stefano corona\AppData\Local\Arduino15\packages\STM32\hardware\stm32\2018.1.18 cmd /c "if not exist C:\Users\stefano corona\AppData\Local\Arduino15\packages\STM32\hardware\stm32\2018.1.18\libraries\Wire\examples\master_writer/build_opt.h mkdir C:\Windows\TEMP\arduino_build_12413\sketch & type NUL > C:\Windows\TEMP\arduino_build_12413/sketch/build_opt.h" Impossibile trovare il percorso specificato. Impossibile trovare il percorso specificato. exit status 1 Errore durante la compilazione per la scheda Nucleo-64.

Mrburnette
Пт. 09 февраля 2018 г. 16:08
ОС Windows примет "/" или "\" в коде Arduino (Sketch.)
Linux примет только "/"

На этом форуме всем рекомендуется использовать Slash «/», потому что некоторые пользователи Linux раздражаются, когда им нужно использовать поиск и заменить... Не спрашивай меня, откуда я это знаю :ржу не могу:


Луча

Flussoincrociato
Пт. 09 февраля 2018 г. 16:28
Привет, Mrbrunette,
Спасибо за объяснение, тогда, возможно, мое предположение неверно.
У вас есть предложение решить проблему?
Он не компилируется без вручного добавления этих файлов и папок, и когда он компилирует, возвращает ошибки.

fpistm
Пт. 09 февраля 2018 г., 17:12
Эта ошибка связана с пространством на пути. Я решил эту проблему, и исправление будет в следующем релизе.
https: // github.com/stm32duino/arduino_c ... 2/тяга/204

Flussoincrociato
Пт. 09 февраля 2018 г., 19:42
Спасибо, я использовал ваши инструкции в соответствующем потоке, и, похоже, это работает, но я не уверен, что я сделал бы это хорошо, в переменной среды я набрал % PATH % в поле Имя и Путь System32 в поле значения, это правильно?

fpistm
Пт. 09 февраля 2018 г., 19:53
Да, вы можете добавить путь System32 в % path % env переменную, если CMD неизвестен, когда называется Arduino IDE.
Но основная коррекция также заключается в том, чтобы двойной цитат на платформе на платформе.текст

Flussoincrociato
Пт. 09 февраля 2018 г., 21:45
Хорошо, теперь я использую последний релиз 2018.1.18, управляя двумя примерами Мастер -писатель и рабский приемник на двух ядрах F401RE,
Это то, что возвращается на моем мониторе последовательного порта: .€. ñ9 .€. ñ9 .€. ñ9 .€. ñ9 ...

Zoomx
Пт. 09 февраля 2018 г. 22:07
Может, вы можете использовать портативную версию.

Вместо того, чтобы загрузить установщик Exe IDE, загрузите ZIP и... Разанипируйте его в папке без пробелов.
Затем iSide создать папку с именем портативной. Запустите IDE, а другие папки и файлы будут созданы.
Загрузите ядро ​​и установите его в папку Portable/Sketchbook/Admleding.

Flussoincrociato
Пт. 09 февраля 2018 г. 22:21
[Zoomx - Пт. 09 февраля 2018 г. 22:07] - Может, вы можете использовать портативную версию.

Вместо того, чтобы загрузить установщик Exe IDE, загрузите ZIP и... Разанипируйте его в папке без пробелов.
Затем iSide создать папку с именем портативной. Запустите IDE, а другие папки и файлы будут созданы.
Загрузите ядро ​​и установите его в папку Portable/Sketchbook/Admleding.
О да, спасибо, даже если патч в платформе.TXT работает хорошо, я попробую это как можно скорее, чтобы я также мог установить доску даже под прокси -сервером

fpistm
Пт. 09 февраля 2018 г., 23:04
Пространство на пути будет зафиксировано в следующем выпуске.
Я думаю, что ваша установка в порядке, я сделаю тест на следующей неделе с F401.
Я протестировал патч для I2C Slave с F091 и F303 с успехом. Как я уже упоминал, есть проблема с полным обратным вызовом I2C, который необходимо просмотреть. Я буду держать вас в курсе.

Flussoincrociato
Сб 10 февраля 2018 г. 12:06
большое спасибо!

fpistm
Пн 12 февраля 2018 г., 17:22
Я сделал несколько тестов с F401, и он работает, если вы не измените линию 541 в TWI.в
от: nbdata = i2c_txrx_buffer_size - obj->ручка.Xfercount;
to: nbdata = i2c_txrx_buffer_size - obj->ручка.Xfersize;

Как уже упоминалось, Slave I2C требовал некоторого обзора в режиме режима IT IT. Проблема уже открыта для этого.

Flussoincrociato
Вт 13 февраля 2018 г. 15:44
Большой!
Спасибо, fpistm