Влияние загрузчиков

Перекинул, не хочет(

Вот код слейва, может в нем кроется проблема?

#include <OneWireSlave.h>
#define pin A4

OneWireSlave ds(pin);
byte rom[8] = {0x22, 0xFF, 0x5E, 0x10, 0x00, 0x00, 0x80, 0x5A};
byte buf[4]; // Буфер для приема 4 байт данных
bool flag = true;
void setup() {
  Serial.begin(9600);
  ds.setRomnc(rom); // Устанавливаем адрес устройства
}

void loop() {
Data();

}
void Data() {
if(flag == true)
{
    ds.waitForRequest(false); // Ожидаем запрос от Master
  int received = ds.recvData(buf, sizeof(buf)); // Принимаем данные
  if (received == 4) { // Проверяем, что принято 4 байта
    unsigned long receivedNumber = 0; // Создаем переменную для хранения числа

    // Собираем 4 байта обратно в число
    for (int i = 0; i < received; i++) {
      receivedNumber |= (unsigned long)buf[i] << (i * 8); // Собираем число из байтов
    }

    Serial.print("Received number: ");
    Serial.println(receivedNumber+100000); // Выводим принятое число
   // flag = false;
  }
}
}

Очень странно, но если заливать через stlink передача работает только через пин PA12, может он нужен для протокола но при бутлоадере занят?

Взял я свою плату, прозвонил - А12 точно звонится на USB, так что поменять нужно было однозначно.

И второе. Вот ты перенес на А4, а без бутлоадер пробовал? Так же работает как и раньше без бутлоадера?

сейчас еще раз пин поменяю и залью через стлинк

Попробуй перекинуть на А9, там USART/TX пин, такой же как и А12 (но без подключения к USB).

Но всё это «пальцем в небо». Надо кого-то, кто с STM32 тесно работает.
@b707 , например. Если появится…

Если прошить через стлинк к порту PA4, передачи нет, к A9 тоже самое, если меняю на PA12 передача сразу идет, на слейве горят сразу же линии rx/tx, сейчас пробовал все через стлинк

Так может быть оно и не возможно?
Я имею ввиду 1 wire и serial использовать одновременно.

На AVR это точно так, а на STM32 не знаю…

тоже склоняюсь к этому, инфы насчет этого нарыть не смог, но видимо так оно и есть(

единственное не понимаю почему именно с PA12… если бы с другими пинами работал я бы еще понимал и принял, а тут странности какие-то…

Ха!
А ты прав. У А12 есть одна «особенность» (если смотреть схему). У него есть подтяжка к +3.3В через резистор 10кОм. :smiley:

Попробуй использовать пин А2 (это USART2 TX) и с него резистор 10кОм на +3.3В. :smiley:

Попробую!!!

То-есть резистор просто еще подкл к 3.3?

Да, один вывод резистора на пин А2, а второй вывод резистора на +3.3В. Это так называемая «подтяжка к плюсу».

Заработало! Ты лучший, спасибо!

И совместно с выводом в Serial?

Да, сейчас проверил, сериал при передаче работает, уриии

Если есть время и возможность - проверь пин А4. Будет работать или нет? Это чтобы понять USARTx обязателен на STM32 для 1-wire или нет.