Size: a a a

2021 February 01

DB

Dima B in STM32
Андрей
Хочу китайский ст-линк переделать в v2.1, сегодня с али приехал с каким-то APM32 на борту. Не знаете, такое переделывается?
А чем 2.1 лучше предыдущего?
источник

А

Андрей in STM32
Есть уарт
источник

f

fsociality.dat in STM32
Переслано от fsociality.dat
источник

f

fsociality.dat in STM32
если что вместо резистора можно просто сделать перемычку
источник

А

Андрей in STM32
Это немного не то.
источник

А

Андрей in STM32
Вот я что имел в виду
источник

А

Андрей in STM32
источник

DG

Dmitri G. in STM32
Добрый вечер.
Если кто работает с Cube IDE, может, стыкался с такой проблемой.
Проходил урок :
http://mypractic.ru/urok-13-razrabotka-i-ispolzovanie-klassov-v-c-sozdanie-klassa-obrabotki-diskretnyx-signalov-debounce.html

Автор делает проект для TrueSTUDIO на С и конвертит его в С++. Так как TrueSTUDIO уже устарело и не поддерживается, решил возиться с официальной CubeIDE. Пробовал :
- создавать проект на С и конвертить
- создавать проект на С++ "с нуля"

Проблема:
При попытке объявить класс и создать объект на основе этого класса компилятор выдает ошибку:
undefined reference to `Debounce::Debounce(GPIO_TypeDef*, unsigned short, unsigned long)' 


Вот сам класс :

class Debounce {
   public:
       Debounce(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, uint32_t filterTime); // конструктор
       void scanStability(void); // метод ожидания стабильного состояния сигнала
       void scanAverage(void); // метод фильтрации сигнала по среднему значению
       void setTime(uint32_t filterTime); // метод установки времени фильтрации
       uint8_t readFlagLow(void); // чтение признака СИГНАЛ В НИЗКОМ УРОВНЕ
       uint8_t readFlagRising(void); // чтение признака БЫЛ ПОЛОЖИТЕЛЬНЫЙ ФРОНТ
       uint8_t readFlagFalling(void); // чтение признака БЫЛ ОТРИЦАТЕЛЬНЫЙ ФРОНТ

       uint8_t flagLow; // признак СИГНАЛ В НИЗКОМ УРОВНЕ
       uint8_t flagRising; // признак БЫЛ ПОЛОЖИТЕЛЬНЫЙ ФРОНТ
       uint8_t flagFalling; // признак БЫЛ ОТРИЦАТЕЛЬНЫЙ ФРОНТ

   private:
       GPIO_TypeDef *_GPIOx; // порт
       uint16_t _GPIO_Pin; // маска вывода
       uint32_t _filterTime; // время фильтрации
       uint32_t _filterTimeCount; // счетчик времени фильтрации
};


Объект (экземпляр этого класса) :
Debounce button(GPIOB, 1 << 12, 10);
источник

DG

Dmitri G. in STM32
Саомое интересное, что если создавать экземпляр класса без передачи в него аргументов :

Debounce button(); 

Тогда все компилится...
источник

DB

Dima B in STM32
это только декларация классса, надо же еще и методы определить.
источник

DB

Dima B in STM32
в том числе и конструктор
источник

DB

Dima B in STM32
это все равно что в C вызвать функцию, которая объявлена как extern, но нигде не определена
источник

m

mirmik in STM32
Dmitri G.
Саомое интересное, что если создавать экземпляр класса без передачи в него аргументов :

Debounce button(); 

Тогда все компилится...
Нет. Запись, которую вы привели
Debounce button();
не является инстансом объекта класса Debounce с названием button,
на самом деле вы объявили функцию button, получающую ноль аргументов и возвращающую объект класса Debounce.
источник

DG

Dmitri G. in STM32
mirmik
Нет. Запись, которую вы привели
Debounce button();
не является инстансом объекта класса Debounce с названием button,
на самом деле вы объявили функцию button, получающую ноль аргументов и возвращающую объект класса Debounce.
Да, понял, спасибо.
Не знаю, где там ошибка и в комментариях она не только у меня. Гугл пока не помог.
источник

m

mirmik in STM32
Реализация конструктора в коде есть?
источник

DG

Dmitri G. in STM32
Да, там выше привёл
источник

m

mirmik in STM32
Вижу только объявление
источник

DG

Dmitri G. in STM32
Блин, да, спасибо, в статье у автора не все описано, похоже :(
источник

m

mirmik in STM32
"Теперь надо разработать тела методов. Не буду их приводить. Посмотрите в окончательном варианте проекта в конце урока."
источник

m

mirmik in STM32
"Полный проект урока можно загрузить по ссылке:

 Зарегистрируйтесь и оплатите. Всего 40 руб. в месяц за доступ ко всем ресурсам сайта!  "
источник