анистор
Чт 11 июня 2015 г., 17:10
Привет,
Я пытаюсь использовать библиотеку MFRC522 для чтения RFID MIFARE CARD. Эта библиотека (https: // github.com/miguelbalboa/rfid) был написан для Arduino, и, хотя он не был специально написан для STM32, он, по -видимому, компилируется без ошибок для моих STM32F103C8T6 ARM STM32 Минимальная система Dev Dev Poard. К сожалению, мне не удалось заставить это работать. Кажется, есть какой -то неудачу в SPI.
Я смог использовать этот RFID Reader (http: // www.электрокрагон.com/product/mifare-rc522-rfid-card-arderdetector-ic-card/) ранее с Pro mini, поэтому я уверен, что он не сломан, и я понимаю, как сделать проводку для плат Pro Mini и Stm32f103c8t6 , поэтому проблема определенно на стороне программного обеспечения.
У кого -нибудь есть какой -либо положительный опыт, заставляя этого конкретного читателя RFID работать с MFRC522 LIB на STM32?
Спасибо!
Адриан
Я пытаюсь использовать библиотеку MFRC522 для чтения RFID MIFARE CARD. Эта библиотека (https: // github.com/miguelbalboa/rfid) был написан для Arduino, и, хотя он не был специально написан для STM32, он, по -видимому, компилируется без ошибок для моих STM32F103C8T6 ARM STM32 Минимальная система Dev Dev Poard. К сожалению, мне не удалось заставить это работать. Кажется, есть какой -то неудачу в SPI.
Я смог использовать этот RFID Reader (http: // www.электрокрагон.com/product/mifare-rc522-rfid-card-arderdetector-ic-card/) ранее с Pro mini, поэтому я уверен, что он не сломан, и я понимаю, как сделать проводку для плат Pro Mini и Stm32f103c8t6 , поэтому проблема определенно на стороне программного обеспечения.
У кого -нибудь есть какой -либо положительный опыт, заставляя этого конкретного читателя RFID работать с MFRC522 LIB на STM32?
Спасибо!
Адриан
victor_pv
Чт 11 июня 2015 г., 17:40
Не уверен, что вы видели другую ветку о штифте SPI SS, но если вы пытаетесь использовать аппаратный PIN -код Spi NSS для управления CS, это может не работать.
Если это так, попробуйте использовать какой -то другой вывод GPIO для CS.
Если это так, попробуйте использовать какой -то другой вывод GPIO для CS.
анистор
Чт 11 июня 2015 г., 18:37
Привет, Виктор!
Отличный совет. Он работает после изменения штифта SS. Похоже, что LIB также нуждается в некоторых настройках, чтобы перенести некоторые вызовы PinMode из конструктора MFRC522 в функцию init, которая вызывается в настройке ().
У меня все еще есть небольшие проблемы, но это обычно работает, и я думаю, что я начну портировать это.
Спасибо!
Отличный совет. Он работает после изменения штифта SS. Похоже, что LIB также нуждается в некоторых настройках, чтобы перенести некоторые вызовы PinMode из конструктора MFRC522 в функцию init, которая вызывается в настройке ().
У меня все еще есть небольшие проблемы, но это обычно работает, и я думаю, что я начну портировать это.
Спасибо!
victor_pv
Чт 11 июня 2015 г. 18:57
Анистор написал:Привет, Виктор!
Отличный совет. Он работает после изменения штифта SS. Похоже, что LIB также нуждается в некоторых настройках, чтобы перенести некоторые вызовы PinMode из конструктора MFRC522 в функцию init, которая вызывается в настройке ().
У меня все еще есть небольшие проблемы, но это обычно работает, и я думаю, что я начну портировать это.
Спасибо!
Отличный совет. Он работает после изменения штифта SS. Похоже, что LIB также нуждается в некоторых настройках, чтобы перенести некоторые вызовы PinMode из конструктора MFRC522 в функцию init, которая вызывается в настройке ().
У меня все еще есть небольшие проблемы, но это обычно работает, и я думаю, что я начну портировать это.
Спасибо!
анистор
Вт 16 июня 2015 г. 14:10
Рад сообщить вам библиотеку MFRC522 (https: // github.com/miguelbalboa/rfid) был исправлен, и патч был интегрирован в Master, так что теперь он работает на платах STM32F103 из коробки.
Адриан
Адриан
Rogerclark
Втюж 07 июля 2015 г. 1:23
Отличный
Спасибо, что сообщили нам
Спасибо, что сообщили нам
петрональ
Чт 10 ноября 2016 г., 9:49
Попытка использовать MFRC522 с моим STM32F103 (синяя таблетка).
Он собирает нормально, но код, кажется, сбой в
Он собирает нормально, но код, кажется, сбой в
SPI.beginTransaction(SPISettings(SPI_CLOCK_DIV4, MSBFIRST, SPI_MODE0)); // Set the settings to work with SPI bus
Rogerclark
Чт 10 ноября 2016 г., 9:52 утра
Должно быть, что -то еще
Я только что добавил эту строку в свой код Blink, и она все еще работает ОК
Я только что добавил эту строку в свой код Blink, и она все еще работает ОК
#include "SPI.h"
int counter=0;
void setup() {
// put your setup code here, to run once:
pinMode(PB12,OUTPUT);
Serial.begin(250000);
SPI.beginTransaction(SPISettings(SPI_CLOCK_DIV4, MSBFIRST, SPI_MODE0));
}
bool v=false;
void loop() {
Serial.println(counter++);
// put your main code here, to run repeatedly:
digitalWrite(PB12,v);
delay(50);
v=!v;
}
петрональ
Чт 10 ноября 2016 г., 10:27 утра
Странный . Удалили все мои соединения, и это не сбой. Дважды проверит все мои соединения RC522
LE: Моя ошибка, у меня была "MFRC522.Pcd_dumpversiontoserial (); "прокомментировал...
LE: Моя ошибка, у меня была "MFRC522.Pcd_dumpversiontoserial (); "прокомментировал...
Rogerclark
Чт 10 ноября 2016 г., 10:40
Похоже, что код - это промахает данные и, возможно, имеет переполнение буфера
Помните, что типы данных отличаются в ARM, чем AVR E.глин. int - 32 бит, двойной действительно двойной, «слово» может быть другим размером с того, что код AVR считает, что он есть.
Внимательно посмотрите на типы данных, которые вы читаете с периферийных устройств, вам может потребоваться изменить объявления переменных, чтобы явно установить размер E.глин. uint16_t и т.д
Помните, что типы данных отличаются в ARM, чем AVR E.глин. int - 32 бит, двойной действительно двойной, «слово» может быть другим размером с того, что код AVR считает, что он есть.
Внимательно посмотрите на типы данных, которые вы читаете с периферийных устройств, вам может потребоваться изменить объявления переменных, чтобы явно установить размер E.глин. uint16_t и т.д
петрональ
Чт 10 ноября 2016 г., 11:06
Нет, он сбоил на этом макросе f () внутри void mfrc522 :: pcd_dumpversiontoserial () {
Переместил
Переместил
#define F(x) x
петрональ
Чт 10 ноября 2016 г., 11:24
Если я перемесчу макрос f () в начале моего эскиза, я получаю ошибки компиляции.
Можем ли мы найти обходной путь, кроме замены All Th F () в этой библиотеке ?
Можем ли мы найти обходной путь, кроме замены All Th F () в этой библиотеке ?
Rogerclark
Чт 10 ноября 2016 г., 20:39
Я бы просто удалил все макросы f ().
Или я думаю, вы могли бы изменить WSTRING там, где определяется существующий M -макрос
Или я думаю, вы могли бы изменить WSTRING там, где определяется существующий M -макрос