Может ли какая -то 1 помощь в библиотеке портов

Zouk199
Вт 25 апреля 2017 г. 9:48 утра
https: // github.com/adafruit/max6675
Я хочу, чтобы это работало с STM32F401.
заранее спасибо

Беннебой
Ср 26 апреля 2017 г. 10:48
Я думаю, что лучший подход - попробовать самостоятельно и попросить конкретную помощь по вопросам, которые возникают.

Zouk199
Ср. 3 мая 2017 г. 3:28 утра
Привет, мистер Бен
Я пытался https: // github.com/jchristensen/thermocouple

может составить

n загрузка

но по какой -то причине не бежит.

Можете ли вы, пожалуйста, помогите ##

Рива
Ср. 3 мая 2017 г., 7:00 утра
Как у вас есть устройство Max7765, подключенное к вашему F401 и какой F401 вы используете?

Zouk199
Пт, 5 мая 2017 г., 3:45
У меня есть доска Max6675 от eBay, и я использую F103RB.Оригинальная библиотека Arduino прикреплена @@

Рива
Пт 5 мая 2017 г. 7:28 утра
Zouk199 написал:У меня есть доска Max6675 от eBay, и я использую F103RB.Оригинальная библиотека Arduino прикреплена @@

Zouk199
Пт 5 мая 2017 г. 7:41
Спасибо Риве за то, что попробовали библиотеку D

Я подключаю SPI SCK к контакту D13/PA5
SPI CS до D10/PB6
SPI Miso to D12/PA6

Эдогальдо
Пт 5 мая 2017 г. 9:03 утра
Zouk199 написал:У меня есть доска Max6675 от eBay, и я использую F103RB.Оригинальная библиотека Arduino прикреплена @@

Рива
Пт 5 мая 2017 г. 9:26 утра
Мисо/SCK, кажется, находится на правых булавках, SS определяется пользователем, хотя файл варианта F103R помещает его на PA4. static const uint8_t SS = BOARD_SPI1_NSS_PIN; static const uint8_t SS1 = BOARD_SPI2_NSS_PIN; static const uint8_t MOSI = BOARD_SPI1_MOSI_PIN; static const uint8_t MISO = BOARD_SPI1_MISO_PIN; static const uint8_t SCK = BOARD_SPI1_SCK_PIN; #define BOARD_SPI1_NSS_PIN PA4 #define BOARD_SPI1_SCK_PIN PA5 #define BOARD_SPI1_MISO_PIN PA6 #define BOARD_SPI1_MOSI_PIN PA7

AG123
Пт 5 мая 2017 г. 10:24
Привет Zouk199,

Я думаю, что Riva прав, проверьте назначения PIN -код, обратите внимание, что выбор другой платы может привести к различным назначениям PIN -кода в плате.C Arate Mass, вам также может потребоваться пересекать схему и макет платы. У меня часто открываются несколько изображений/файлов, чтобы я мог быть уверен, что я выбрал правильные булавки. В STM32 IT GPIOS обычно ссылается на его Paxx .. PNXX PINS. Но доски.c Используйте индекс в массив, чтобы выбрать PIN -код и может привести к тому, что вы, как вы можете ожидать, Paxx, но это буквально PNXX что -то еще.

Другое дело Max6675.PDF, по -видимому, указывает максимальную частоту тактовой частоты 4.3 МГц
https: // таблицы данных.Максимунтегрирован.ком/ ... AX6675.PDF

Коды, кажется, нацелены на часы SPI 1 МГц
https: // github.com/jchristensen/thermoc ... лежа.CPP#L35 SPI.setClockDivider(SPI_CLOCK_DIV16); //Set SPI clock freq to 1MHz

Zouk199
Пн, 8 мая 2017 г. 1:36
Привет, Рива

Я пытался // эти 3 моси/sck/miso и попытаться совершить и бежать.Все еще не повезло с одним примером TC

Я изменил CHG #define cstc1 10 на #define cstc1 pb6.

кажется, что рутина термопары не работает.

Если я положил // на // Thermocouple TC1 = ThermoCouple (CSTC1); // экземпляры объекта термопары, затем он работает

Coz без результата.

Кажется, наша функция Thermocouple () может быть некоторой проблемой.

AG123
Пн, 8 мая 2017 г. 6:36 утра
Я бы предложил копировать и поместить термопару.CPP и термопару.H в той же папке, что и ваш эскиз. я.эн. Используйте его как источник, а не как «библиотека»

Затем в вашей копии термопары.CPP, вы можете вставить сериал.операторы print () для изучения переменных e.глин.
https: // github.com/jchristensen/thermoc ... лежа.CPP#L45 tcData = SPI.transfer(0x00) << 8; tcData |= SPI.transfer(0x00); Serial.println(tcData); << add print statements to check the data read

Лонгджам
Пн, 3 июля 2017 г., 16:03
#include #define SPI1_NSS_PIN PA4 //SPI_1 Chip Select pin is PA4. You can change it to the STM32 pin you want. boolean _first = true; float _temps[6]; void setup() { Serial2.begin(115200); // Setup SPI 1 SPI.begin(); //Initialize the SPI_1 port. SPI.setBitOrder(MSBFIRST); // Set the SPI_1 bit order SPI.setDataMode(SPI_MODE0); //Set the SPI_2 data mode 0 SPI.setClockDivider(SPI_CLOCK_DIV64); // Slow speed (72 / 16 = 4.5 MHz SPI_1 speed) pinMode(SPI1_NSS_PIN, OUTPUT); } void loop() { float tempC, tempF; tempC=readC(); tempF=readF(); Serial2.print("Deg C = "); Serial2.print(tempC); Serial2.print("\t Deg F = "); Serial2.println(tempF); delay(2000); //Delay 10 micro seconds. } float readC(){ unsigned int tcData; float temp, avgTemp; digitalWrite(SPI1_NSS_PIN, LOW); // manually take CSN low for SPI_1 transmission tcData = SPI.transfer(0x00) << 8; //Send the HEX data 0x55 over SPI-1 port and store the received byte to the variable. tcData |= SPI.transfer(0x00); digitalWrite(SPI1_NSS_PIN, HIGH); // manually take CSN high between spi transmissions if (tcData & 0x0004) { //open thermocouple circuit return -1.0; } else { temp = (tcData >> 3) / 4.0; //calculate deg C if (_first) { //if first time through, fill the readings array _first = false; for (int i=0; i<6; i++) { _temps[i] = temp; } } for (int i=0; i<5; i++) { //shift prior readings _temps[i] = _temps[i+1]; } _temps[5] = temp; //put the new reading in at the top end of the array avgTemp = 0.0; //calculate the average for (int i=0; i<6; i++) { avgTemp += _temps[i]; } avgTemp /= 6.0; return avgTemp; } } float readF() { float tempC; tempC = readC(); if (tempC < 0.0) { return tempC; } else { return tempC * 9.0 / 5.0 + 32.0; } }

Стивестронг
Пн, 3 июля 2017 г. 18:05
???

ZMEMW16
Пн, 3 июля 2017 г., 20:13
Для какой -то глупости, я думаю, что узнаю части этого из библиотеки. Я обнаружил, что 2 MAX6675 библиотеки, разница, не работала, была капитализация названия библиотеки.
Даже тогда, когда впоследствии я хотел использовать его, мне пришлось попробовать оба снова 50/50 шанс : D
Я не помню никаких проблем, используя его на BP или MM.
Также мы вернулись в школу/колледж так рано ?
Стивен

Rogerclark
Втюж 04 июля 2017 г., 21:14
Я не могу вспомнить, что я использовал, но я раньше использовал термопару с STM32.

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

Мне придется выкопать код и проверить именно то, что я использовал

Максиан
Вторник 07 ноября 2017 г. 19:21
Английский вариант:
Может быть, кто будет полезен мой опыт.
С библиотекой термопары для меня дисплей, оставшийся на работу 3.2 'ILI9341 8BT (библиотека автора Iwalpola).
Решил попробовать с библиотекой Adafruit Max6675, чтобы адаптировать эту библиотеку под STM32 необходимо внести изменения в MAX6675.CPP:
  • #включать <util/задержка.час> -> //#включать <util/задержка.час>
  • заменить все _ задержка _ ms (1); -> задержка (1);
После этих изменений работает дисплей и два термо -датчика.

Русский вариант:
МОЖЕТ.
Сэблиотко -термопарура.2 'ili9341 8bt (БИБЛИОТЕКА АВТОРА ИВАЛПОЛА).
Rerhylproybowaths spiebliotekoй adafruit max6675, чtobы adaptirowatth.CPP:
  • #включать <util/задержка.час> -> //#включать <util/задержка.час>
  • зmenithth wse _delay_ms (1); -> задержка (1);
Posle эtiх yзmenenew.

victor_pv
Вторник 07 ноября 2017 г. 22:03
Спасибо, Максиан. Я собирался использовать эту библиотеку. Обнаружил, что внес те же изменения, но еще не проверил их. Ваш пост подтверждает, что должно быть все, что нужно. :)

Есть еще несколько обновленных вилок, которые используют порт HW SPI. Вы проверили любой из этих?

Максиан
Ср. 8 ноября 2017 г. 5:17 утра
victor_pv
Нет, я не проверял, остальные мои булавки заняты.