Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Blue pill (STM32F103C8T6) development board

21.04.20 15:07
Blue pill (STM32F103C8T6) development board
 
  moose коренной житель
Последний раз изменено 21.04.20 15:09 (moose)

имеем вот такой "классический" blue pill




выполняем на нем простейший пример: переход в standby mode и выход оттуде через wake up pin, но не работает как надо:
после wake up бит SBF (SBF: Standby flag) в Power control/status register (PWR_CSR) не установлен, что говорит о том, что чип не был в standby.
тот же код абсолютно правильно выполняется на этой плате




тот же самый чип процессора (STM32F103C8T6).



один интересный момент. когда в первый раз попытался загрузить программу (Keil μVision) на первую плату через ST Link V2, кайл сообщил, что в ST Link – устаревшая версия firmware, и предложил залить новую. я согласился, после чего постоянно стал получать сообщение об ошибке при попытке соединиться с платой. вернул предыдущую версию (для ST-Link Upgrade она и есть новейшая, на номер меньше). после этого код записался, хотя постоянно выныривало сообщение

но после нажатия на ок все срабатывало.
далее. запрограммировал wake up от RTC alarm через каждые несколько секунд. после reset плата сигнализирует светодиодом для контроля, но по-разному в зависимости от прочитанного SBF: Standby flag. запустил прогу на обеих платах. первая постоянно мигает так, как и первый раз после подачи питания, т.е. она не выходит по wake up из standby mode. вторая плата мигает так только один раз после включения, затем – иначе, как при установленном SBF: Standby flag. кроме того, вторая плата промигала сутки без проблем, в то время как первая через какое-то случайное время останавливается. думаю, это имеет ту же причину, по которой процессор не идет в standby, хотя могу и ошибаться, т.к. причину не знаю.
у меня этих "первых" плат – три штуки. все ведут себя одинаково (плохо).
еще одно недоразумение. вчера решил таки попробовать связаться с платой из кайла, согласиться на апгрэйд ST Link V2 firmware, затем путем подбора конфигурации в кайле удалось таки связаться с платой (blue pill, "первая") и записать туда программу. и "произошло чудо": она заработала правильно! я так обрадовался, что пошел выпить кофе. возвращаюсь, что-то незначительное меняю в коде, перезаписываю ... и снова не работает как надо. возвращаю код на место (действительно мелочь какая-то была! никакого отношения к переходу в standby) – ничего не помогает. после этого случайно (с моей точки зрения, конечно, ибо все имеет реальные причины, даже если мы их не знаем) один раз плата "замигала правильно", будто она вышла из стэндбая, но при новой записи кода все ушло снова в воспоминания.
пробовал баловаться с версиями ST Link V2: снова вернул старую, согласился на апгрэйд в кайле, ..., чего я только не перепробовал, больше не получается добиться правильной работы этой платы. вторая работает постоянно без проблем.


гоголя спрашиваю постоянно, с разными формулировками. похоже, ни у кого больше таких проблем не было.


интуитивно подозреваю, что это может быть как-то связано с процессом записи кода, но пробовал в кайле получать hex, и потом записывать его с помощью STM32 ST-LINK Utility.exe – та же история.
я могу жить и со второй платой (заказал еще третью, попробую), но успокоиться не смогу, пока не буду знать, в чем причина, и не смогу сделать осознанно, "чтоб работало правильно", и "чтоб работало неправильно". прошу помочь мне в этом. спасибо!

 

Перейти на