ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
1 сентября
1538653 Топик полностью
Eddy_Em (28.08.2025 19:20, просмотров: 71) ответил Vit на наблюдаю, что в main не рассматривается случай, когда CDCready[I_CMD] (вроде по DTR/RTS устанавливается) не ноль, а USB_receivestr (смотрит буфер) возвращает ноль. в таком случае проваливаетесь в выдачу "Interface 0 connected". и потом в цикле может от USB_receivestr появиться не нуль. дальше какие-то гонки с parse_cmd. может не прав. ХЗ
Да тот случай и не нужно проверять: если ничего не пришло, то просто проверяем, что там с флагами. 

Буфер на прием достаточно большой, так что если даже за "один прогон" придет 3-4 пакета USB, кольцевой буфер не переполнится. Но, понятно, при желании можно и DDOS устроить.

Что до конечных точек, их всего четыре. И все rx-tx: 0, само-собой, и по точке на каждый интерфейс. Это позволяет до семи устройств на одном STM32 сделать (есть у меня в планах "вундервафля": RS-232, RS-485, SSI, CAN, SPI и I2C в одном флаконе; но это уже - или на F072, или на F303, т.к. сирый и убогий F103 не умеет одновременно CAN и USB).

eddy-em.livejournal.com github.com/eddyem