Решено: Sketch работает медленно после чтения SD -карты

Классигота
Чт 28 апреля 2016 г., 19:38
Всем привет!
Итак, я работаю над проектом, в котором я использую Maple Mini Clone (STM32F103CBT6), чтобы загрузить растровые изображения с встроенного считывателя SD -карт на ЖК -экране ST7735 TFT. В основном эскиз сначала показывает меню, в котором есть список параметров (текст, нарисованный в TFT), и вы используете кнопки для прохождения и выбора опции. При выборе параметра он загружает и отображает растровый карту на экране. У меня все работает нормально со стандартной библиотекой Arduino SD, но после того, как он загружает растровый карту, а затем возвращает в меню, весь эскиз работает намного медленнее. И я не могу понять, почему. Количество времени, которое требуется для загрузки и отображения растрового карта, просто отлично, это сразу после этого все остальное работает медленнее.
Часовая работа каким -то образом замедляется после чтения SD -карты? Есть ли в любом случае, чтобы ускорить его снова?

Это код, который я использую для загрузки и отображения файлов растрового изображения:
avrdude -p m328p -c arduino -b 115200 -P net:10.111.111.60:23 -Uflash:w:/yourHexFile.hex

Мадиас
Чт 28 апреля 2016 г., 8:22 вечера
2 возможные вещи:

(а) Разделите ли вы SPI с TFT и SD-картой?
Итак, я думаю, что в эскизе SD -карты есть SetClockDivider (), который замедляет дисплей TFT (если дисплей является устройством SPI - ваш код не завершен, я не вижу вашей включенной библиотеки TFT)
(б) У вас всегда был серийный монитор вашего компьютера?
Я вижу, что вы используете «сериал.начать »и« сериал.Печать " -> Это общая проблема, что, если серийный монитор не подключен при включении какого -либо серийного.xxx "Плата STM32F1XX замедляется. Так что постарайтесь удалить * каждый * "сериал.xxx "

Классигота
Чт 28 апреля 2016 г., 8:57 вечера
Я делюсь SPI с TFT и SD -картой.
Я использую библиотеку Adafruit ST7735 (хотя она может быть изменена, я не могу вспомнить)

И в файле CPP для этого есть setclockdivider (). Как мне изменить его, чтобы заставить его работать? avrdude -p m328p -c arduino -b 115200 -P net:10.111.111.60:23 -Uflash:w:/yourHexFile.hex

Пито
Чт 28 апреля 2016 г., 21:22
Если вы положите
SPI.SetclockDivider (21); // 4 МГц
в г....LE, вы получите первую находку: SPI.SetclockDivider (разделитель)
..
Arduino Dues
При условии системных часов можно разделить на значения от 1 до 255. Значение по умолчанию составляет 21, которое устанавливает часы на 4 МГц, как и другие платы Arduino.
Попробуйте что -то вроде spi_clock_div2 вместо «21» для Maplemini.

Мадиас
Чт 28 апреля 2016 г., 21:24
Хорошо, я нашел это: sketchbook/hardware/Arduino_STM32/tools/linux/maple_upload: line 40: /home/stephen/sketchbook/hardware/Arduino_STM32/tools/linux/dfu-util/dfu-util: cannot execute binary file: Exec format error stephen@i7:~$ file sketchbook/hardware/Arduino_STM32/tools/linux/dfu-util/dfu-util sketchbook/hardware/Arduino_STM32/tools/linux/dfu-util/dfu-util: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=c58354ce3ca661a39bc97aacb5beffa73cf5dfb3, not stripped

Пито
Чт 28 апреля 2016 г., 21:44
Не пито, но г...Ле быстр : ugeek:
Max Spi Speed ​​для 7735 составляет 15 МГц (таблица данных), поэтому она может работать с Div2 (18MHz SPI).
Если не стабильный иди с div4 (9 МГц).

Rogerclark
Чт 28 апреля 2016 г., 21:50
@pito

Афик

Поскольку системные часы составляют 72 МГц.

Div 2 - 36 МГц
Div4 - 18 МГц

Пито
Чт 28 апреля 2016 г., 21:53
Нет, он делится от 36 МГц..

Rogerclark
Чт 28 апреля 2016 г., 21:55
ХОРОШО

Мне нужно дважды проверить, но я был почти уверен, что смогу получить часы SPI на 36 МГц, и я подумал, что настройка была Div2

Rogerclark
Чт 28 апреля 2016 г., 22:15
@pito

Я не уверен, какое оборудование вы запускаете, но если я использую этот код bash: ./dfu-util: cannot execute binary file: Exec format error

Werecatf
Чт 28 апреля 2016 г., 23:16
Пито написал:Нет, он делится от 36 МГц..

Пито
Чт 28 апреля 2016 г., 23:43
Да, кажется, ты прав. Я испортил SPI2 и SPI1 и SD.начинать(.. Div2) поэтому я получил 36 МГц в качестве источника для разделителя (в противном случае мои SDCARD не сработали)..
Это хорошее сообщение с 36 МГц SPI1, я собираюсь запустить свою SDCARD в режиме высокой скорости CMD6 :)

Werecatf
Пт 29 апреля 2016 г. 1:11
Многие люди, кажется, полностью пропускают, что SPI1 и SPI2 не работают с той же частотой, а затем задаются вопросом, почему они не получают скорости, которых они ожидают. Это хорошая информация, чтобы держать в виду.

Классигота
Пт 29 апреля 2016 г., 5:26 утра
Размещать экран TFT на SPI2!!!

Спасибо всем за ваши предложения!

Mrburnette
Пт 29 апреля 2016 г. 12:03
ClassyGoat написал:Размещать экран TFT на SPI2!!!

Спасибо всем за ваши предложения!

STM32F3 Discovery Board Support