Компиляция проблемы с ILI9341_DUE

Димдим
Пт 28 октября 2016 г. 15:59
Привет, ребята,

У меня странная проблема.

Несколько месяцев назад я написал кусок кода, который использовал библиотеку ILI9341_DUE, чтобы нарисовать на классическом eBay 2.4 дюйма.

Он без проблем составлен на совместимой Arduino IDE того времени (1.6.5 или что -то в этом роде) и бегал на синей таблетках.

Вот первые несколько строк моего кода:
#include "Arduino.h" #include //#include //#include #include #include #include "fonts\MS_Sans_Serif_25.h" #define TFT_DC PA15 #define TFT_CS PB4 #define rst PB3 // Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC ILI9341_due tft = ILI9341_due(TFT_CS, TFT_DC, rst); ILI9341_due_gText t1(&tft); char textBuff[20]; // Color set #define BLACK 0x0000 #define RED 0xF800 #define GREEN 0x07E0 //#define BLUE 0x001F #define BLUE 0x102E #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define ORANGE 0xFD20 #define GREENYELLOW 0xAFE5 #define DARKGREEN 0x03E0 #define WHITE 0xFFFF uint16_t color; uint16_t colorFONDO=BLACK; String serialin; String pch; char str[600]; char tmp[40]; #define MAX_STRING_LEN 600

Мэнни
Пт 28 октября 2016 г., 19:18
Далеко от эксперта, но попробуйте прокомментировать #include "pins_arduino.h"

Rogerclark
Пт 28 октября 2016 г., 8:15 вечера
Этот пример больше не может компилировать.

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

Мы действительно должны проверить более старые примеры и удалить все, что больше не работает с нашей текущей кодовой базой

Martinayotte
Пт 28 октября 2016 г., 20:23
Проблема в том, как упоминал @Manny, я помню, что это была проблема прошлым летом:

http: // www.STM32duino.com/viewtopic.PHP ... = 30#p16026

Димдим
Сб 29 октября 2016 г., 21:30
Забавно, я на самом деле прочитал эту ветку и увидел этот пост, но не понял, что это исправило проблему. Мой плохой!

В любом случае, спасибо всем за помощь. Все сейчас хорошо складывается. :)

Rogerclark
Сб 29 октября 2016 г., 22:43
Ребята

Похоже, проблема в том, что библиотека Touch, так и библиотека Due ILI9341 оба включают pins_arduino.час

Проблема в основном либера

В любом случае. Я прокомментировал линии оскорбления, и я подтолкнул обновление к GitHub

Димдим
Солнце 30 октября 2016 г. 1:41
Я мог говорить слишком рано.

utftdemo на IDE 1.6.12 с текущими компилированными компиляциями arduino_stm32 (Master Branch) без ошибок, но код не работает (или TFT не инициализируется должным образом - я не уверен). Я просто получаю статический рисунок чередующегося черного & Белые вертикальные линии.

utftdemo на IDE 1.6.5-r2 с arduino_stm32 загружен из Github в течение 11 апреля 2016 г. работает просто хорошо.

Все остальное такое же (тот же компьютер, та же синяя таблетка & TFT).

Rogerclark
Солнце 30 октября 2016 г., 7:47
Какой пример - это ?

Определенно была проблема с PINS_ARDUINO, но я не уверен, почему мы вообще не сталкиваемся с примером, так как это не совсем актуально, теперь другие примеры для ILI9341 работают

Димдим
Солнце 30 октября 2016 г. 13:27
Я пробовал примеры adafruit_ili9341_stm/graphicstest, ili9341_due_stm/graphicstest, ili9341_due_stm/utftdemo, adafruit_ili9341_stm/stm32_graphicstest, adafruit_ili9341_stm/stm32_graphicstest,.

Все они скомпилируются, но не бегают.

Глядя на мой серийный порт, когда я запустил adafruit_ili9341_stm/stm32_graphicstest все, что я получил, было:
ILI9341 Test! Display Power Mode: 0x0 MADCTL Mode: 0xDE &

Дэйвид.Прентис
Ср. 16 ноября 2016 г., 9:15
Я только что установил текущий STM32Duino на мой V1.6.12 IDE и AM управляют доской Nucleo-F103.

Я также столкнулся с теми же авариями, но мог отлаживать файл ELF с Rowley CrossWorks.
Проблема заключается в макросе f ​​(), который используется Arduino для доступа к строкам во Flash.

C: \ users \ david \ documents \ arduino \ arpware \ arduino_stm32-master \ stm32f1 \ cores \ maple \ wstring.час class __FlashStringHelper; #define F(string_literal) (reinterpret_cast(PSTR(string_literal)))

Rogerclark
Ср 16 ноября 2016 г., 19:35
M -макрос - это всего лишь ярлык для предварительной проглемы, необходимой из -за архитектуры AVR.


На процессорах ARM вы используете нормальные принципы языка C, такие как Const, для достижения того же самого более настроенного образом

Дэйвид.Прентис
Чт 17 ноября 2016 г. 18:58
Я написал небольшой тестовый набросок: void setup() { char message[40]; delay(5000); Serial.begin(9600); Serial.println("Hello Serial"); delay(5000); strcpy(message, (const char*)F("Flash Message copied to SRAM")); Serial.println(message); delay(5000); Serial.println(F("Flash Message")); delay(5000); Serial.println("Are we still alive?"); } void loop() { }

Rogerclark
Чт 17 ноября 2016 г., 21:37
Дэйвид

ХОРОШО. Я думал наш отпечаток.CPP был такой же, как версия Arduino Sam, но похоже, что это не так?

Вадимель
Вт 29 ноября 2016 г. 12:01
Та же проблема, программа Freez на f ()

нравиться

тфу.print (f ("test"));

После загрузки и установки новой версии arduino_stm32
----------------------------------- #undef F #define F(x) x

Даниэфф
Вт 29 ноября 2016 г. 12:12
Изменение строки 46 в печати.CPP от
return print(reinterpret_cast(ifsh));

Стивестронг
Вт 29 ноября 2016 г. 12:33
Я сделал проблему на GitHub, Проверьте это здесь.