[Решено] Hardwareserial доступен () Не сообщаю о длине буферированных данных на сериале1

Sajuukkahr
Ср. 15 февраля 2017 г. 11:06
Привет, ребята,

Я пытаюсь загрузить модуль памяти SPI с некоторыми изображениями. Процесс должен быть:

ПК конвертор изображения > Сериал > STM32F1 RAW WIPE TO SPI MEM > SPI память

Проблема в том, что я жду, когда буфер станет полным или по крайней мере 256, чтобы я мог написать страницу.

Любые идеи на .доступный() ? Он всегда сообщает 0

Пока я попробую еще один подход.

victor_pv
Чт 16 февраля 2017 г. 12:08
Саджуккахр написал:Привет, ребята,

Я пытаюсь загрузить модуль памяти SPI с некоторыми изображениями. Процесс должен быть:

ПК конвертор изображения > Сериал > STM32F1 RAW WIPE TO SPI MEM > SPI память

Проблема в том, что я жду, когда буфер станет полным или по крайней мере 256, чтобы я мог написать страницу.

Любые идеи на .доступный() ? Он всегда сообщает 0

Пока я попробую еще один подход.

Sajuukkahr
Чт 16 февраля 2017 г. 12:45 утра
Использование USART
не уверен, как ответить на второй вопрос, который я получил от Arduino STM32 https: // github.com/rogerclarkmelbourne/arduino_stm32

Я кажется, что это используемые файлы
аппаратное обеспечение/arduino_stm32/stm32f1/cores/maple/ardwareserial.CPP
Аппаратное обеспечение/arduino_stm32/stm32f1/cores/maple/libmaple/usart.в
аппаратное/arduino_stm32/stm32f1/system/libmaple/include/libmaple/usart.час

victor_pv
Чт 16 февраля 2017 г. 1:25 утра
Саджуккахр написал:Использование USART
не уверен, как ответить на второй вопрос, который я получил от Arduino STM32 https: // github.com/rogerclarkmelbourne/arduino_stm32

Я кажется, что это используемые файлы
аппаратное обеспечение/arduino_stm32/stm32f1/cores/maple/ardwareserial.CPP
Аппаратное обеспечение/arduino_stm32/stm32f1/cores/maple/libmaple/usart.в
аппаратное/arduino_stm32/stm32f1/system/libmaple/include/libmaple/usart.час

Sajuukkahr
Чт 16 февраля 2017 г. 8:47 утра
Привет, Виктор, также просмотрел реализацию, и это кажется солидным....
USB обнаруживается как сериал в Arduino Env.

Использование синей таблетки SMT32F103C

Я использую serial1, который является PA9 PA10. Тест довольно прост:
настраивать
Serial1.начало (115200);

петля

while (1) {
Задержка (200);
Serial1.println (serial1.доступный());
}

Стивестронг
Чт 16 февраля 2017 г. 10:03 утра
Насколько я знаю, у USART есть ограниченный буфер RX (64 байта?), поэтому вы не можете получить больше данных, чем это сразу.
Решение:
1. Вы читаете все доступные байты из USART и копируете их в свой (больший) буфер
или
2. Измените размер буфера RX - вам нужно посмотреть в исходных файлах для этого.

Если всегда отчеты 0, то у вас есть проблема с приемом. Проверьте провода.
В качестве альтернативы используйте серийный USB, он должен работать с относительной высокой пропускной способностью (около 600 Кбит / с для RX).

Sajuukkahr
Чт 16 февраля 2017 г. 10:59
Эй, играл с буферами, но без успеха...

Проблема в том, что он всегда отображает 0. Попробовал тот же пример на Arduino Uno, и он работает, я загружаю, затем открываю серийный монитор и вижу много 0, когда отправляю что -то, что значение меняется, потому что у нас теперь есть что -то в буфере.

У меня есть STM32, подключенный через PA9, PA10 к USB CP203X Вот как я выводит данные (программа через USB -вывод через серийный для отладки).

Значение на STM32 никогда не меняется с 0. Он должен подняться до 64 или размер буфера RX и оставаться там до прочтения.

Стивестронг
Чт 16 февраля 2017 г. 12:26
Для тестирования обмен сериалом с Serial1: Используйте Serial (USB) для передачи данных и используйте Serial1 для отладки вывода.
Конечно, вы должны отправить что-то, чтобы получить номером без нуля в соответствии с подсчетом полученных байтов.

Sajuukkahr
Чт 16 февраля 2017 г. 12:37
Стивестронг написал:Для тестирования, обмен сериалом с Serial1: пользовательский сериал (USB) для передачи данных и использования Serial1 для вывода отладки.
Конечно, вы должны отправить что-то, чтобы получить номером без нуля в соответствии с подсчетом полученных байтов.

Стивестронг
Чт 16 февраля 2017 г. 12:44
Саджуккахр написал:Serial1.println (serial1.доступный());}

Sajuukkahr
Чт 16 февраля 2017 г. 12:47
Этот пример довольно прост распечатать доступные данные в Serial1, ожидая обработки через чтение. Имеет ли это значение, я вывожу в Serial1? Не думаю так...

Также, как я уже сказал.

Sajuukkahr
Чт 16 февраля 2017 г. 12:47
Не уверен, как подходить к этому.

1) Одним из решений является получение SPI, подключенного к Arduino Uno и прошивайте чип через сериал
2) Вторым является создание буферного механизма, чтобы отслеживать элементы, так как я могу писать только 256 байт за раз, поэтому мне нужно буферизировать остальные
3) или разделите «пакеты» информации на 256 и отправьте один комок в то время....И подождите ответа, говоря, что он был написан

Попробую с RX/TX2 и 3 для быстрого доступного () проверки, но это тот же класс, поэтому не должно быть никакой разницы...

Mrburnette
Чт 16 февраля 2017 г. 12:47
Саджуккахр написал: <...>
Я ненавижу сериал USB, когда порт закрывается при программировании платы, и мне нужно повторно открыть механизм ведения журнала каждый раз...

Sajuukkahr
Чт 16 февраля 2017 г. 12:49
Mrburnette написал:Саджуккахр написал: <...>
Я ненавижу сериал USB, когда порт закрывается при программировании платы, и мне нужно повторно открыть механизм ведения журнала каждый раз...

Mrburnette
Чт 16 февраля 2017 12:51
Саджуккахр написал:Mrburnette написал:Саджуккахр написал:
И именно поэтому я не использую это...Я не нахожу никакой ценности в вашей шутке/комментарии

Стивестронг
Чт 16 февраля 2017 г. 12:52
Измените заголовок потока, чтобы включить »Serial1..."
Попробовать Serial2 - хорошая идея.

Sajuukkahr
Чт 16 февраля 2017 г. 12:55
Mrburnette написал:Саджуккахр написал:Mrburnette написал:

Sajuukkahr
Чт 16 февраля 2017 г. 12:56
Стивестронг написал:Измените заголовок потока, чтобы включить »Serial1..."
Попробовать Serial2 - хорошая идея.

Стивестронг
Чт 16 февраля 2017 г. 13:02
Serial - это серийный USB на синих таблетках и использует различные аппаратные и программные обеспечения, чем Serial1..2.

Но если у вас есть сомнения по поводу наших советов, вам лучше узнать только решение. С этого момента я вне этой проблемы.

Sajuukkahr
Чт 16 февраля 2017 г. 13:07
Стивестронг написал:Serial - это серийный USB на синих таблетках и использует различные аппаратные и программные обеспечения, чем Serial1..2.

Но если у вас есть сомнения по поводу наших советов, вам лучше узнать только решение. С этого момента я вне этой проблемы.

Mrburnette
Чт 16 февраля 2017 г. 13:23
На ядре ESP8266 я запустил этот эскиз с последовательной консолью, настроенной на «Нет линии "c:\Program Files (x86)\Arduino\arduino_debug.exe" --pref serial.port="COM9" --pref serial.port.file="COM9"

Sajuukkahr
Чт 16 февраля 2017 г. 13:35
Если вы действительно хотите помочь загрузить этот же набросок в синюю таблетку (если у вас есть)

Sajuukkahr
Чт 16 февраля 2017 г. 13:37
В зависимости от длины входного последовательного буфера именно это я хочу значение байтов в буфере RX !!!

Он работает для ESP, он работает для UNO, но не для STM32F1X....


Я могу сделать это сам в своем эскизе с помощью смазки локтя .... Но я подумал, что это стоит отладить фактическую причину и исправить ее в репо :рулон:

Mrburnette
Чт 16 февраля 2017 г. 13:46
Саджуккахр написал:В зависимости от длины входного последовательного буфера именно это я хочу значение байтов в буфере RX !!!

Он работает для ESP, он работает для UNO, но не для STM32F1X....

Sajuukkahr
Чт 16 февраля 2017 г. 14:08
Я согласен с вами.
Mrburnette написал: Вы знаете, что ядро ​​STM32Duino, как унаследованное от Leaflabs, имеет USB -код, связанный с кодом эскиза и загружено в пространство хранения «Sketch»?
Луча

Mrburnette
Чт 16 февраля 2017 г. 14:15
Посмотрите дома, я обнаружил, что клон Baite Maple STM32F103 Baite с 2.0 Bootloader.

Этот эскиз с использованием USB работает так же, как и вывод ESP8266 выше! Итак, если USB Serial сломается, это произошло с июля 2016 года, который был в последний раз, когда я обновлял папку Home/Arduino/Admare/STM32.

Луча

Go to 'Settings'->'Preferences' Click on 'Auto-Completion' in the left hand list Tick 'Enable auto-completion on each input' Select 'Function and word completion' Tick 'Ignore numbers' (if you wish) Click 'Close'

Sajuukkahr
Чт 16 февраля 2017 г. 14:17
Не могли бы вы заменить сериал с Serial1 и прикрепить мост USB-USART на PA9, PA10 ? (По крайней мере, я/мы можем подтвердить, что это мое оборудование по вине или нет)

Mrburnette
Чт 16 февраля 2017 г. 14:37
Саджуккахр написал:Не могли бы вы заменить сериал с Serial1 и прикрепить мост USB-USART на PA9, PA10 ? (По крайней мере, я/мы можем подтвердить, что это мое оборудование по вине или нет)

Mrburnette
Чт 16 февраля 2017 г. 14:38
Саджуккахр написал:Не могли бы вы заменить сериал с Serial1 и прикрепить мост USB-USART на PA9, PA10 ? (По крайней мере, я/мы можем подтвердить, что это мое оборудование по вине или нет)

victor_pv
Чт 16 февраля 2017 г. 14:44
Саджуккахр написал:Стивестронг написал:Serial - это серийный USB на синих таблетках и использует различные аппаратные и программные обеспечения, чем Serial1..2.

Но если у вас есть сомнения по поводу наших советов, вам лучше узнать только решение. С этого момента я вне этой проблемы.

Sajuukkahr
Чт 16 февраля 2017 г. 14:59
victor_pv написал: Кроме этого, я говорил это много раз в других темах, но получаю отладчик. Клон Stlink стоит 2 бакса и сэкономит вам много головных болей.

Mrburnette
Чт 16 февраля 2017 г. 15:47
... Создайте это:

https: // www.хакерс.io/rayburne/the-qb ... tor-ae7015

Луча

Sajuukkahr
Солнце 19 февраля 2017 г. 9:10 вечера
Эй, ребята, очень жаль позднего ответа, я проверил репо, у меня был, и это не было испорчено, хотя немного старый. Я проверяю все остальные серийные порты, и в наличии он все время возвращался 0.

Я только что обновился до последнего коммита, и все вуаля работала как очарование. Извлеченный урок, обновите репо, прежде чем публиковать глупые вопросы и тратить время людей.

Спасибо всем за поддержку.
@mrburnette
@stevestrong
@victor_pv

И немного угощения, проверьте изображение, прикрепленное.
Это STM32, прикрепленный, у меня есть флэш -память 25Q 64MBIT и ILI9486. Все необработанные данные загружаются для прошивки через сериал из сценария PHP, который анализирует файлы GIF и записывает пользовательский TOC 32Bytesx128Entries, а затем фактические данные для изображений. Все изображения хранятся в формате, подобном GIF, изображениям поддонов (цвета хранятся в массиве, затем в другом массиве вы только добавляете индекс цвета поддона, чтобы сохранить пространство).

В настоящее время у меня есть диспетчер памяти, который читает и записывает на Flash, Next - это менеджер пользовательского интерфейса, который будет отслеживать изображения по слою, чтобы вы могли перерисовать только некоторые части экрана, а не весь экран.

Speffs на STM32

Цена чертежа