ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
1005053 Топик полностью
fk0, легенда (16.05.2020 17:07, просмотров: 1016) ответил RxTx на STM32 UART работает со сбоями. Проект/код сгенерен в CUBEMX
Это прекрасно, я только что задавал вопрос, как быть, если результат кодогенерации куба подводит... Я только не понял, зачем у тебя из USART1 перекладывается в отладочный порт -- какой в этом смысл? Loopback test? Вначале сделай простой цикл в main, без прерываний. Вызывать блокирующуюся функцию ITM_SendChar в прерывании -- вообще идиотизм. Во-вторых где гарантия, что у тебя отладочный порт _быстрее_, чем UART? А то будет, что ты в обработчике прерывания зависаешь 

посылая одну буковку, и пропуская ещё 4. Даже если скорость и выше, то на коротком промежутке времени может быть затык. В STM32 есть ли FIFO-буфер у UART? Вроде нет. Значит у тебя обязательно должен быть свой софтовый кольцевой буфер, куда ты буфешь складывать из обработчика прерывания, и откуда, уже вне прерывания (ибо блокировка) будешь посылать в ITM_SendChar. И должны быть паузы в потоке (чтоб успевало). Или RTS/CTS, XON/XOFF.

[ZX]