ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1415366 Топик полностью
Eddy_Em (16.03.2024 20:30, просмотров: 147) ответил Лaгyнoв на там в конечном итоге просто надо было очистить fifo перед чтением данных с слэйва SPI. Везде говорили про обнуление одного бита в статусе, но я решил тупо перед любым чтением делать просто - BFSPI=SPI1->DR; И всё стало нормально. :-) Наш друг SciFi смеялся, но нам татарам всё равно. :-)
Что до SPI, я вот год или два назад, вплотную занявшись STM32F303 (экранчик к ней подключал), охренел, что мой код, который стабильно на F103 и F0xx работал, здесь внезапно сел в лужу! 

Оказалось, что ST'шные "умники" залупили на SPI в 303-й серии FIFO! В итоге, когда ты считываешь как бы свежие данные, тебе попадается кусок какого-нибудь мусора из фифо!!! Решение проблемы - через жирную жопу. Увы. И в еррате ни хрена про это нет, что они там так просрались! Самый цимус - при работе с DMA, там вообще в бубен надо бить, чтобы правильные данные принять... А в ранних сериях все отлично работали. Вот так и получается: хотели как лучше, а получился псц.

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