kvanton



Ответы в темах

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • в ответ на: Программирование МК STM32 #19322
    kvanton
    Участник

    Всем привет, начал недавно STM32 осваивать (до этого были pic12-18/arduino/raspberry) и столкнулся с интересной проблемой:

    Настроил GPIO как Input Pull-Up но при считывании получаю 0.

    Условия:
    Несколько других также настроенных портов (Input Pull-Up) при этом посажены на землю (на один порт Output Open-Drain), а непосредственно перед считыванием переключаю другой порт Output Open-Drain Pull-Up с 1 на 0.
    При этом, если поставить задержку (пробовал 1мс) после переключения OutPut и считыванием Input получаю — 1, как и должно быть. Порты по схеме ни как не связанны — пробовал вообще отключать input порт от схемы (матрица кнопок) ситуация не меняется.

    Работаю с китайской платой на stm32f103c8t6 (ардуино подобная) и библиотекой LL. Скорость порта пробовал разную — результат один.

    Сможет кто-то объяснить или хотя бы намекнуть (куда копать, что почитать) почему такой эффект возможен?
    Во всяких даташитах/аппликейшн ноте вроде ни чего интересного, зацепила только аббревиатура SSO ( simultaneous switching output) в разделе Adapt GPIO speed (в AN на GPIO) — но понять глубину этой фразы и контекста с ходу не получилось (возможно из-за непонимания каких-то базовых моментов)

    Хотя и проблема в принципе решена (задержка допустима) — но хотелось бы разобраться в причинах.

    Буду благодарен любым вариантам, может что-то натолкнет на правильные мысли.

  • Автор
    Сообщения
  • в ответ на: Программирование МК STM32 #19322

    kvanton
    Участник
    • Оффлайн

    Всем привет, начал недавно STM32 осваивать (до этого были pic12-18/arduino/raspberry) и столкнулся с интересной проблемой:

    Настроил GPIO как Input Pull-Up но при считывании получаю 0.

    Условия:
    Несколько других также настроенных портов (Input Pull-Up) при этом посажены на землю (на один порт Output Open-Drain), а непосредственно перед считыванием переключаю другой порт Output Open-Drain Pull-Up с 1 на 0.
    При этом, если поставить задержку (пробовал 1мс) после переключения OutPut и считыванием Input получаю — 1, как и должно быть. Порты по схеме ни как не связанны — пробовал вообще отключать input порт от схемы (матрица кнопок) ситуация не меняется.

    Работаю с китайской платой на stm32f103c8t6 (ардуино подобная) и библиотекой LL. Скорость порта пробовал разную — результат один.

    Сможет кто-то объяснить или хотя бы намекнуть (куда копать, что почитать) почему такой эффект возможен?
    Во всяких даташитах/аппликейшн ноте вроде ни чего интересного, зацепила только аббревиатура SSO ( simultaneous switching output) в разделе Adapt GPIO speed (в AN на GPIO) — но понять глубину этой фразы и контекста с ходу не получилось (возможно из-за непонимания каких-то базовых моментов)

    Хотя и проблема в принципе решена (задержка допустима) — но хотелось бы разобраться в причинах.

    Буду благодарен любым вариантам, может что-то натолкнет на правильные мысли.

Просмотр 1 сообщения - с 1 по 1 (всего 1)