SPI не будет работать на STM32F4 (?)

Клубника
Ср 23 декабря 2015 г., 22:34
Итак, я играю вместе с чипом STM32F4 (для секретного проекта, по крайней мере, пока) и я пытаюсь заставить SPI работать.

Я уже попробовал минимальный набросок (просто #include <SPI.час>) и небольшой набросок для ILI9341 упомянут здесь

Минимальный сбой при следующем коде ошибки:
EEPROM.PageBase0 = 0x801F000; EEPROM.PageBase1 = 0x801F800; EEPROM.PageSize = 0x800;

Martinayotte
Ср 23 декабря 2015 г., 23:00
Привет, солома,

Я использую много SPI под F4 для подключения как считывателя SDCARD, а также сетевого адаптера ENC28J60.

Для ошибки Hardwarespi я прокомментировал «// extern Hardwarespi Spi;» в конце хардсеспи.H, потому что у вас может быть 2 объявления SPI одновременно. (Думаю, я забыл совершить это небольшое изменение)

Я также прокомментировал все, что связано с DMA, потому что он был от F1, и у меня еще не было возможности адаптировать к F4.

Если вы комментируете их так же, это ваш эскиз компиляция ?

Клубника
Ср 23 декабря 2015 г., 23:44
Кажется последней строкой Hardwarespi.H делает что -то, но это не сработает. Используя простой эскиз, он компилирует. Но как только он начнет использовать стандартные команды SPI (SPI.Начнется) он больше не компилируется. Одним из примеров будет Портированная библиотека Adafruit GFX (SSD1351).

Прокомментировано: #define BOARD_LED_PIN PA6 #deifine ARD_UNO_ANALOG1 PA1 #deifine ARD_UNO_ANALOG2 PA3 #deifine ARD_UNO_ANALOG3 PA8 #deifine ARD_UNO_ANALOG4 PB1 #deifine ARD_UNO_ANALOG5 PB2 #deifine ARD_UNO_ANALOG6 PB5 #deifine ARD_UNO_DIGITAL1 PA10 #deifine ARD_UNO_DIGITAL2 PA11 etc.

Martinayotte
Чт 24 декабря 2015 г. 12:04
Вы включаете SPI.h или hardwarespi.час ?
Потому что весь Hardwarespi из Leaflab, вероятно, мусор, а SPI - это тот, который будет использоваться.

Клубника
Чт 24 декабря 2015 г. 12:18
В библиотеке SPI.H используется, но в SPI.H включает в себя протир.

Martinayotte
Чт 24 декабря 2015 г. 12:51
Да, ты прав, он присутствует в протирке.час.
Но это прокомментируется в протирке F1.h, особенно этот хардвареспи.* больше не существует в F1.

Ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооа ! Этот устаревший код "спагетти" заставляет меня натянуть волосы !
Наверное, поэтому я не делал небольшой коммит, забытый выше: это бесполезно, так как все хардвореспи.* бесполезны, SPI.* В любом случае использует аппаратное обеспечение...
Если мы поймем проблему, возможно, я сделаю полную удаление Hardwarespi.* скоро... ;)

Но это не решает вашу проблему, нам нужно определить, почему возникает ошибка, поскольку предоставляемый вами журнал показывает ошибку с компиляцией, а не время ссылки (если это было время ссылки, это будет означать, что вы просто забыли объявить «spiclass Spi (1); »в вашем основном наброске)

Может, мне нужно будет скачать Adafruit GFX, чтобы попробовать.

Клубника
Ср 30 декабря 2015 г. 12:19
Ну, я добился прогресса. Он компилирует, а я получаю справочную ошибку: int a = PB12; int b = PB1; void setup() { // put your setup code here, to run once: Serial1.begin(115200); pinMode(a, OUTPUT); } void loop() { // put your main code here, to run repeatedly: digitalWrite(a, HIGH); delay(100); digitalWrite(a, LOW); delay(900); Serial1.println(a); Serial1.println(b); }

Mrburnette
Ср 30 декабря 2015 г. 1:00
Клубберника писал: <...>
Я только что сделал это снова, так или иначе это сработало на этот раз.

Martinayotte
Ср 30 декабря 2015 г., 2:49
Привет, солома,

Это кажется немного странным с тех пор, как он скомпилирован, но ошибки во время ссылки.
Не могли бы вы предоставить журнал для командной строки Time Link, она выглядит как SPI.o там не включено ...
(Кстати, что вы используете Arduino Ide ? Я надеюсь, что это не знаменитый багги 1.6.6...)

Клубника
Ср 30 декабря 2015 г. 13:34
Я на мобильном банкомате, опубликую его, когда я дома. Я уже переключился на 1.6.5, прочитайте проблему GitHub

Клубника
Ср 30 декабря 2015 г., 21:52
Вот полный выход
Похоже, SPI.в.o включен там

Martinayotte
Чт 31 декабря 2015 г., 16:40
Это компиляция выглядит немного странно, он компилируется с __stm32f1__ вместе с кодом F1xxx вместо F4xxx.

Вы выбрали соответствующий вариант доски?
if(ledPin = 13) { }