Итак, чтобы таки иметь возможность отладки, мне понадобилось на этой "CAN-USB-GPIO" плате заиметь более жирный МК. Благо, на работе попалась такая же плата с STM32F072C8T6. Посидел сегодня вечером, и таки
почти завел USART. Почти — потому как что-то у меня там в функции приема неладно: подвисает, зараза, на больших последовательностях данных. Ничего, разберусь.
ИИ весь вечер нещадно тупил и нес пургу, так что, вместо того, чтобы тратить время и намекать ему, что мне нужно (а то он вообще попутал местами каналы DMA для Rx/Tx при ремапе), написал все сам. Погонял gdb, нашел кучу ашыпок и очепяток. То тактирование включить забуду (того же SYSCFG, скажем, чтобы ремап каналов DMA USART1 сделать на те же ch4/ch5, что и у USART2: я допустил использование любого из них, но не одновременно), то volatile поставить (блин, минут 15 отлавливал этот баг, пока не заметил, что у меня флаг без этого слова объявлен), то понавтыкал вчера тупых заглушек, а сегодня решил, что там уже полноценный функционал должен был работать…
Заметил, что после полуночи кодится хорошо, но повышается количество косяков. А вычитывать свой код на предмет ошибок так вообще бесполезно в это время: "глаз замыливается".
Сегодня (упс, уже вчера) получил на "озоне" парочку STM32L051 (купил их и пару STM32L431 на пробу, авось, созрею что-нибудь батареечное сделать). Заплатил за обоих 330 рублей (сейчас, кстати, они лежат по 130 за штучку), а 431 обошлись мне в 256р (скидка 30%, если брать больше одного; подозрительная, конечно, цена - как получу, проверю).
Удивила упаковка: мне обычно так хорошо запаковывали, когда десятками брал. А тут - парочку засунули в пластиковую коробочку, утрамбовав поролоном. Коробочку - в антистатический пакет, а тот - уже в обычный алишный пакетик. Проверил на свей "вундервафле": говорит, что STM32; Unique ID различается в младшем байте (по маркировке - тоже из одной партии). Раз россыпью, то, видимо, из паллет доставали (и, скорей всего, как обычно - отбраковку с производства).