Страница 4 из 5

Re: Программируем STM8S003, STM8S103.

Добавлено: 24 янв 2026, 19:51
aidar_i
Удалите или архивируйте и удалите, когда будет нужно разархивируйте. Почему не используете портативную версию? Я не удалял, У меня вообще не обращается туда. Вы мой проект загружаете? Эта библиотека Wire.h не используется в проекте.
Вот проект с эмуляциией термодатчика
Удалил, смотрите ниже

Re: Программируем STM8S003, STM8S103.

Добавлено: 24 янв 2026, 20:13
montirovka
aidar_i писал(а): 24 янв 2026, 19:51 Удалите или архивируйте и удалите, когда будет нужно разархивируйте. Почему не используете портативную версию? Я не удалял, У меня вообще не обращается туда. Вы мой проект загружаете? Эта библиотека Wire.h не используется в проекте.
Вот проект с эмуляциией термодатчика
Термостат холодильника_1_1_тест.rar
Завтра попробую на другом компе с портативной версией.

Re: Программируем STM8S003, STM8S103.

Добавлено: 24 янв 2026, 20:18
aidar_i
montirovka писал(а): 24 янв 2026, 20:13
aidar_i писал(а): 24 янв 2026, 19:51 Удалите или архивируйте и удалите, когда будет нужно разархивируйте. Почему не используете портативную версию? Я не удалял, У меня вообще не обращается туда. Вы мой проект загружаете? Эта библиотека Wire.h не используется в проекте.
Вот проект с эмуляциией термодатчика
Термостат холодильника_1_1_тест.rar
Завтра попробую на другом компе с портативной версией.
Видео
Показать
compressed_10674733320769.part1.rar
compressed_10674733320769.part2.rar
compressed_10674733320769.part3.rar
compressed_10674733320769.part4.rar

Re: Программируем STM8S003, STM8S103.

Добавлено: 24 янв 2026, 20:32
Selivan
Переустановил windows10, заново скачал и установил версию 8.0.0., результат тот же - Ошибка компиляции для платы STM8S103F3.
Обращение к EEPROM есть, после этого exit status 1, до обращения к библиотеке OLED дело не доходит.

Re: Программируем STM8S003, STM8S103.

Добавлено: 24 янв 2026, 20:53
aidar_i
Selivan писал(а): 24 янв 2026, 20:32 Переустановил windows10, заново скачал и установил версию 8.0.0., результат тот же - Ошибка компиляции для платы STM8S103F3.
Обращение к EEPROM есть, после этого exit status 1, до обращения к библиотеке OLED дело не доходит.
Не нужно было Виндовс трогать.
Тогда загрузите в МК хекс файл через STVP STM8
pr1.ino.rar
Показать
STVP.bmp

Re: Программируем STM8S003, STM8S103.

Добавлено: 25 янв 2026, 08:08
Selivan
Загрузил через STVP - все замечательно работает. Что же не так с Arduino IDE?

Re: Программируем STM8S003, STM8S103.

Добавлено: 25 янв 2026, 10:17
aidar_i
Selivan писал(а): 25 янв 2026, 08:08 Загрузил через STVP - все замечательно работает. Что же не так с Arduino IDE?
В личку пришлите полностью ход компиляции.

Re: Программируем STM8S003, STM8S103.

Добавлено: 26 янв 2026, 22:36
aidar_i
Удалил, не актуально

Re: Программируем STM8S003, STM8S103.

Добавлено: 05 фев 2026, 20:17
aidar_i
В первом сообщении выложил обновлённый проект Термостат для холодильника.

Re: Программируем STM8S003, STM8S103.

Добавлено: 06 фев 2026, 09:26
montirovka
Попробовал проверить компиляцию у себя на компе проекта Термостат. Ошибки в Ардуино ИДЕ. Некоторые обошел, но не факт что правильно. Как эту побороть не знаю.
2026-02-06_09-21-06.png

Re: Программируем STM8S003, STM8S103.

Добавлено: 06 фев 2026, 19:20
aidar_i
montirovka писал(а): 06 фев 2026, 09:26 Попробовал проверить компиляцию у себя на компе проекта Термостат. Ошибки в Ардуино ИДЕ. Некоторые обошел, но не факт что правильно. Как эту побороть не знаю.
У Вас 8.2.3? Пользуйтесь для создания или изменения до версии 8.0.2. А для запуска в 8.2.3 удалите со скетча библиотеку #include "flprogUtilites.h". А вижу , последняя версия, там вообще открывать не нужно.

Re: Программируем STM8S003, STM8S103.

Добавлено: 06 фев 2026, 19:39
montirovka
aidar_i писал(а): 06 фев 2026, 19:20
montirovka писал(а): 06 фев 2026, 09:26 Попробовал проверить компиляцию у себя на компе проекта Термостат. Ошибки в Ардуино ИДЕ. Некоторые обошел, но не факт что правильно. Как эту побороть не знаю.
У Вас 8.2.3? Пользуйтесь для создания или изменения до версии 8.2.2. А для запуска в 8.2.3 удалите со скетча библиотеку #include "flprogUtilites.h". А вижу , последняя версия, там вообще открывать не нужно.
Версия 8.2.3. Попробую завтра в другой версии.
На скриншоте у Вас 9.6.9. на 8.2.3 делайте так как я писал выше , запустится.

Re: Программируем STM8S003, STM8S103.

Добавлено: 07 фев 2026, 07:44
montirovka
aidar_i писал(а): 06 фев 2026, 19:20
montirovka писал(а): 06 фев 2026, 09:26
Для запуска в 8.2.3 удалите со скетча библиотеку #include "flprogUtilites.h". А вижу , последняя версия, там вообще открывать не нужно.
Попробовал проект "Термостат..." в различных версиях. В FLProg 8.0.0. и FLProg 8.0.2 без проблем. В версии FLProg 8.2.3 пока не удалил flprogUtilites.h была ошибка. В FLProg 8.0.2 проект оказался самым маленьким - 4667 байт. В версии FLProg 8.2.3 размер - 4701 байта.
2026-02-07_07-27-44.png

Re: Программируем STM8S003, STM8S103.

Добавлено: 08 фев 2026, 13:26
chmak2007
Кто нибудь воплотил stm8s modbus?

Re: Программируем STM8S003, STM8S103.

Добавлено: 08 фев 2026, 20:12
aidar_i
chmak2007 писал(а): 08 фев 2026, 13:26 Кто нибудь воплотил stm8s modbus?
Испытайте код
Показать

Код: Выделить всё

/**
 * Супер-минимальный Modbus Slave для STM8S103F3
 * Только функция 0x03 (чтение регистров)
 */

#include <Arduino.h>

// Конфигурация
#define MB_ADDR     1
#define MB_BAUD     9600
#define MB_BUF_SIZE 32
#define MB_REG_CNT  10

// Переменные
static uint16_t mb_regs[MB_REG_CNT];
static uint8_t mb_buf[MB_BUF_SIZE];
static uint8_t mb_idx = 0;
static uint32_t mb_time = 0;

// CRC16 функция
static uint16_t mb_crc(uint8_t *d, uint8_t n) {
    uint16_t c = 0xFFFF;
    uint8_t i, j;
    
    for (i = 0; i < n; i++) {
        c ^= d[i];
        for (j = 0; j < 8; j++) {
            if (c & 1) {
                c = (c >> 1) ^ 0xA001;
            } else {
                c >>= 1;
            }
        }
    }
    return c;
}

void setup() {
    Serial_begin(MB_BAUD);
    pinMode(LED_BUILTIN, OUTPUT);
    
    // Инициализация регистров
    uint8_t k;
    for (k = 0; k < MB_REG_CNT; k++) {
        mb_regs[k] = k * 100;
    }
}

void loop() {
    // Прием данных
    if (Serial_available()) {
        int c = Serial_read();
        if (c >= 0) {
            mb_buf[mb_idx++] = (uint8_t)c;
            mb_time = millis();
            
            if (mb_idx >= MB_BUF_SIZE) {
                mb_idx = 0;
            }
        }
    }
    
    // Обработка фрейма
    if (mb_idx > 0 && (millis() - mb_time) > 5) {
        // Проверка адреса
        if (mb_buf[0] == MB_ADDR && mb_idx >= 8) {
            // Проверка CRC
            uint16_t crc_rx = (mb_buf[mb_idx-1] << 8) | mb_buf[mb_idx-2];
            uint16_t crc_calc = mb_crc(mb_buf, mb_idx - 2);
            
            if (crc_rx == crc_calc) {
                // Проверка функции 0x03
                if (mb_buf[1] == 0x03) {
                    uint16_t addr = (mb_buf[2] << 8) | mb_buf[3];
                    uint16_t cnt = (mb_buf[4] << 8) | mb_buf[5];
                    
                    if (addr < MB_REG_CNT && cnt > 0 && (addr + cnt) <= MB_REG_CNT) {
                        // Формирование ответа
                        uint8_t tx[MB_BUF_SIZE];
                        uint8_t tx_idx = 0;
                        uint16_t i;
                        
                        tx[tx_idx++] = MB_ADDR;
                        tx[tx_idx++] = 0x03;
                        tx[tx_idx++] = cnt * 2;
                        
                        for (i = 0; i < cnt; i++) {
                            uint16_t val = mb_regs[addr + i];
                            tx[tx_idx++] = val >> 8;
                            tx[tx_idx++] = val & 0xFF;
                        }
                        
                        uint16_t crc = mb_crc(tx, tx_idx);
                        tx[tx_idx++] = crc & 0xFF;
                        tx[tx_idx++] = crc >> 8;
                        
                        // Отправка
                        for (i = 0; i < tx_idx; i++) {
                            Serial_write(tx[i]);
                        }
                        
                        // Индикация
                        digitalWrite(LED_BUILTIN, HIGH);
                        delay(2);
                        digitalWrite(LED_BUILTIN, LOW);
                    }
                }
            }
            mb_idx = 0;
        } else if (mb_buf[0] != MB_ADDR) {
            mb_idx = 0;
        }
    }
    
    // Фоновые задачи
    static uint32_t last = 0;
    if (millis() - last > 1000) {
        last = millis();
        mb_regs[0] = (mb_regs[0] + 1) & 0xFFFF;
        digitalWrite(LED_BUILTIN, HIGH);
        delay(1);
        digitalWrite(LED_BUILTIN, LOW);
    }
}

Re: Программируем STM8S003, STM8S103.

Добавлено: 09 фев 2026, 09:34
Murtaza
Good day sir,
can you add a custom description of STM8s105C6, 32/2kb.
thanks

Re: Программируем STM8S003, STM8S103.

Добавлено: 09 фев 2026, 21:23
aidar_i
Murtaza писал(а): 09 фев 2026, 09:34 Good day sir,
can you add a custom description of STM8s105C6, 32/2kb.
thanks
Это долго, поставьте контроллер Arduino Mega 2560 в FLProg, а в Arduino Ide STM8S105C6.

Re: Программируем STM8S003, STM8S103.

Добавлено: 04 мар 2026, 11:12
Murtaza
Dear Aidar good afternoon,
please give a example of integer input of TM1637 block ,
or make a new block of TM1637 input integer ,and float variable.

Re: Программируем STM8S003, STM8S103.

Добавлено: 04 мар 2026, 12:08
montirovka
Murtaza писал(а): 04 мар 2026, 11:12 Dear Aidar good afternoon,
please give a example of integer input of TM3716 block ,
or make a new block of TM3716 input integer ,and float variable.
And what is TM3716? Maybe TM1637?

Re: Программируем STM8S003, STM8S103.

Добавлено: 04 мар 2026, 12:18
Murtaza
OH its TM1637 module , sorry for mistake