Я смотрю, что тему про переход на классы в STM читают. И немного комментируют.
Постоянная ссылка на библиотеки на Яндекс диске https://disk.yandex.ru/d/ymB60PAjT5rjTw
Я не успеваю писать статьи. Библиотеки пеку быстрее. Буду их закидывать по мере готовности и писать здесь об этом.
Если что то понадобится, но непонятно как использовать, задавайте вопросы.
Библиотеки зависимые от ядра
Библиотеки работают не со всеми чипами этой серии. Для некоторых чипов достаточно дописать дефайны. | |||
STM32F0xx | gpio_main | Библиотека работы с портами ввода/вывода | Готова |
I2C | Интерфейс I2C | В процессе тестирования | |
RCC_48_Init | Инициализация тактового генератора | Готова | |
SPI | Интерфейс SPI | В процессе тестирования | |
stm32f0xx_flash | Функции для эмуляции EEPROM | В процессе тестирования | |
Timers | Функции millis(), micros(), delay(), delayMicroseconds() | Готова | |
UART | Интерфейс UART | В процессе тестирования | |
STM32F1xx | gpio_main | Библиотека работы с портами ввода/вывода | Не проверялась |
RCC_72_Init | Инициализация тактового генератора | Не проверялась | |
Timers | Функции millis(), micros(), delay(), delayMicroseconds() | Не проверялась | |
STM32F2xx | gpio_main | Библиотека работы с портами ввода/вывода | Не проверялась |
RCC_HSE_Init | Инициализация тактового генератора | Не проверялась | |
Timers | Функции millis(), micros(), delay(), delayMicroseconds() | Не проверялась | |
STM32F3xx | gpio_main | Библиотека работы с портами ввода/вывода | Готова |
I2C | Интерфейс I2C | В процессе тестирования | |
RCC_HSE_Init | Инициализация тактового генератора | Готова | |
SPI | Интерфейс SPI | В процессе тестирования | |
Timers | Функции millis(), micros(), delay(), delayMicroseconds() | Готова | |
UART | Интерфейс UART | В процессе тестирования | |
STM32F4xx | EXTI_Int | Работа с внешними прерываниями | В процессе тестирования |
gpio_main | Библиотека работы с портами ввода/вывода | Готова | |
I2C | Интерфейс I2C | Готова | |
RCC_HSE_Init | Инициализация тактового генератора | Готова | |
RTC | Часы реального времени | Готова без будильников | |
SPI | Интерфейс SPI | В процессе тестирования | |
TIM_Base | Работа с базовыми таймерами | Готова | |
Timers | Функции millis(), micros(), delay(), delayMicroseconds() | Готова | |
UART | Интерфейс UART | Готова | |
STM32L0xx | ADC | АЦП | В процессе тестирования |
EEPROM | Работа с EEPROM | В процессе написания | |
EXTI_Int | Работа с внешними прерываниями | В процессе тестирования | |
gpio_main | Библиотека работы с портами ввода/вывода | Готова | |
RCC_32_Init | Инициализация тактового генератора | Готова | |
SPI | Интерфейс SPI | В процессе тестирования | |
Timers | Функции millis(), micros(), delay(), delayMicroseconds() | Готова | |
UART | Интерфейс UART | Готова | |
STM32L1xx | EEPROM | Работа с EEPROM | В процессе тестирования |
gpio_main | Библиотека работы с портами ввода/вывода | Готова | |
I2C | Интерфейс I2C | В процессе тестирования | |
RCC_32_Init | Инициализация тактового генератора | Готова | |
TIM_Base | Работа с базовыми таймерами | Готова | |
Timers | Функции millis(), micros(), delay(), delayMicroseconds() | Готова |
Библиотеки независимые от ядра
AT24Cxx | Работа с EEPROM фирмы Microchip | Готова |
Colors | Коды цвета для графических библиотек | Готова |
FSMC16_TFT | Управление 16 бит дисплеем по FSMC ILI9341 | Рабочая, для какого дисплея не помню, использую как сырец |
FSMC_RA8875 | Управление 16 бит дисплеем по FSMC на чипе RA8875 | Рабочая, требует оптимизации |
functions | Функции, которые бывают необходимы | Всяко, разно |
GFX_Button | Кнопки для графического дисплея | Готова, скрещивается с библиотеками TouchScreen |
GFX_TFT | Графическая библиотека по образу Adafruit GFX | Готова |
gfxfont | Шрифт 5х7 для графических библиотек | Готова |
HX8347_8bit | Управление дисплеем на чипе HX8347 8 бит. На ногодрыге | Готова |
ILI9341_8bit | Управление дисплеем на чипе ILI9341 8 бит. На ногодрыге | Готова |
ILI9341_FSMC16 | Управление 16 бит дисплеем по FSMC на чипе ILI9341 | Готова |
IO_Digital | Класс для работы с портами ввода/вывода | Готова |
LCD780 | Работа с LCD1602 — LCD2404 на ногодрыге | Рабочая, требует оптимизации |
OneWire | OneWire библиотека на ногодрыге | Готова, на ногодрыге |
Класс print для устройств ввода/вывода | Готова | |
RingFIFO | FIFO для UART | Готова |
RM68140_8bit | Управление дисплеем на чипе RM68140 8 бит. На ногодрыге | Не запустил |
RS485 | RS485 — протокол придуманный Mikroelektronika, расширенный | Готова, требует проверки, нашёл ошибки |
SButton | Библиотека Button с форума Гайвера | Готова |
SDallas | Библиотека для DS18B20 | Готова |
SPI_Soft | SPI на ногодрыге | Готова |
ST7735_SPI | Управление дисплеем на чипе ST7735. На SPI | Готова для одного типа контроллера. В идеале должно быть 5 штук |
STimer | Библиотека Timer с форума Гайвера | Готова |
STM_BME280 | Класс для работы BME/BMP280 через I2C | Готова |
STM_HDC1080 | Класс для работы HDC1080 через I2C | Готова |
STM_SGP30 | Класс для работы SGP30, SGPC3 через I2C | Готова |
Добрый день, у меня выдает ошибку
'SysTickConfig' was not declared in this scope; did you mean 'SysTick_Config'? RCC_HSE_Init.cpp /F407VExx_RCC/Stm32F4xx/Src line 131 C/C++ Problem
Да, ошибка будет.
Я ещё не всё написал в этой статье. И предупреждал, что так и будет.
Сегодня закинул статью. Скоро она появится. После этого будет понятно, почему так.
А всё предыдущее получилось?
Да, ошибка будет.
Я ещё не всё написал в этой статье. И предупреждал, что так и будет.
Сегодня закинул статью. Скоро она появится. После этого будет понятно, почему так.
А всё предыдущее получилось?
Спасибо за ответ! Да я так и подумал, что это в следующей статье будет решено. Я по шагам не проходил, взял по ссылке проект и стал его изучать более подробно, читая текст параллельно.
Товарищи участники.
Пожалуйста подумайте, что можно в таймерах перевести на классы.
Устройство очень сложное. И всё переводить на классы сложно и бесполезно.
Первое, что приходит в голову - ШИМ.
Давайте идеи, что может понадобится довольно часто.
Товарищи участники.
Пожалуйста подумайте, что можно в таймерах перевести на классы.Устройство очень сложное. И всё переводить на классы сложно и бесполезно.
Первое, что приходит в голову - ШИМ.
Давайте идеи, что может понадобится довольно часто.
Режим захвата мне кажется после ШИМ наиболее популярен. Ну и конечно обычная работа с генерацией прерывания через заданный интервал времени.
Принято.
Сейчас занимаюсь I2C. Раньше надобности не было.
Амбец с ним геморой. Неделю бился только с тем, что адрес EEPROM на шину не выдавала. Сегодня получилось. Теперь нужно дописать чтение байт.
С записью я думаю проще будет. Уже понятно что и как делать.
Я UART запустил за два дня. А тут на каждый чих реагировать нужно.
Амбец с ним геморой. Неделю бился только с тем, что адрес EEPROM на шину не выдавала. Сегодня получилось. Теперь нужно дописать чтение байт.
С записью я думаю проще будет. Уже понятно что и как делать.
Я UART запустил за два дня. А тут на каждый чих реагировать нужно.
Да, I2C в этом плане более трудоемкая.
Я попробовал пример с GPIO - собралось, работает все верно, спасибо.