Ой! А что это? Ну у вас же всё наперекосяк. Отправляем байт в DR ждём TXE=1 ждём BSY=0. Поднимаем CS если нужно. Это передача одного байта. Отправляем байт в DR ждём TXE=1 отправляем следующий байт ждём TXE=1 отправляем следующий байт и т. д. ждём TXE=1 ждём BSY=0. Поднимаем CS если нужно. Это передача нескольких байт. В RM же всё разрисовано. Купите логический анализатор и такие вопросы не будут возникать.
Ну-ну, анализатор в ЛНР
А в чем собственно разница? При первой передаче TXE=1 и BSY=0, поэтому алгоритм сразу перейдёт к отправлению байта. При повторном вызове функции, если передача не закончилась, то будет ждать BSY=0 и TXE=1. Если же передача закончилась, то сразу переходим к отсылке следующего байта. Те же яйца, только в профиль
Понимаю. Но STM32 вы же где-то брали? Они же тоже на грядках не растут. Протэус СТМ32 не поддерживает. Симулятор отсутствует. Без анализатора изучение СТМ32 это очень надолго.
Цитата:
А в чем собственно разница?
Что у всех работает а у вас нет.
Цитата:
Те же яйца, только в профиль
А откуда вам знать? Не работает. А почему? Без анализатора вы причину сами найти не можете и визуально описать её для других не в состоянии.
Понимаю. Но STM32 вы же где-то брали? Они же тоже на грядках не растут.
Да нихрена вы не понимаете. Это запас 2-х летней давности, привезенный из Харькова.
scorpi_0n писал(а):
Без анализатора изучение СТМ32 это очень надолго.
А я никуда не спешу. МК для меня хобби, а не работа. Уже сделал вольтметр-амперметр на STM32F0F4P6, имея только переходник на уарт, и могу точно сказать что АЦП и таймеры общего назначения в данном МК соответствуют описанию в RM. А SPI увы не соответствует
scorpi_0n писал(а):
Что у всех работает а у вас нет.
Очередная демагогия. Я видел здесь только одного человека, который реально запускал SPI на STM32F030 (это dosikus), остальные только теоретизировали на тему как ДОЛЖЕН работать SPI (как написано в RM я и сам знаю), и не смогли дать НИ ОДНОГО толкового примера. Потому что баловаться с SPL - это одно дело, а знать тонкости периферии в конкретной линейке - другое.
Я видел здесь только одного человека, который реально запускал SPI на STM32F030 (это dosikus), остальные только теоретизировали на тему как ДОЛЖЕН работать SPI (как написано в RM я и сам знаю), и не смогли дать НИ ОДНОГО толкового примера. Потому что баловаться с SPL - это одно дело, а знать тонкости периферии в конкретной линейке - другое.
Вы это серьёзно? Или как? До 030 были ещё 050 и 051. С них то и начиналась собственно линейка F0XX. А также были F3ХХ. Не говоря о нынешних 038 042 048 071 072 091 и пр. Так вот. Скажу вам по секрету. У них всех SPI абсолютно одинаков. И ничем SPI 030-го не отличается от остальных. Ничем. Сможете запомнить? У меня на столе сейчас прикручена STM32F050 (по новому - STM32F031) и всё работает. Что 8 бит что 16 что 9. Все биты отрабатываются правильно. SPL не пользуюсь. Поэтому мне просто не понятно что вы там не смогли. Тем более что вы даже не удосужились уточнить что именно у вас не работает. Нет клока нет данных лишние данные данные обрываются 16 бит вместо 8 и т.д.
Очередная демагогия. Я видел здесь только одного человека, который реально запускал SPI на STM32F030 (это dosikus), остальные только теоретизировали на тему как ДОЛЖЕН работать SPI (как написано в RM я и сам знаю), и не смогли дать НИ ОДНОГО толкового примера. Потому что баловаться с SPL - это одно дело, а знать тонкости периферии в конкретной линейке - другое.
Хоть демагогия, хоть размагогия. Я тут намедни взялся покурить датчик давления, т.ч. на столе макетка с этим самым STM32F030K6 оказалась как раз кстати. Сейчас специально подоткнул индикатор на двух HC595 через SPI. Работает без вопросов. В чем нечеловеческий подвиг запуска SPI на STM32, никак в толк взять не могу.
У меня на столе сейчас прикручена STM32F050 (по новому - STM32F031) и всё работает. Что 8 бит что 16 что 9. Все биты отрабатываются правильно. SPL не пользуюсь.
Ещё скажите что на 051 и на 030 один и тот же RM
И опять тонны пустопорожнего трёпа. Где код? Инициализацию и передачу в студию.
Я тут намедни взялся покурить датчик давления, т.ч. на столе макетка с этим самым STM32F030K6 оказалась как раз кстати. Сейчас специально подоткнул индикатор на двух HC595 через SPI. Работает без вопросов. В чем нечеловеческий подвиг запуска SPI на STM32, никак в толк взять не могу.
Ну и на кой нужна ваша фотосессия? Пайкой и макетками хвастаетесь? Код предъявите.
Ну и на кой нужна ваша фотосессия? Пайкой и макетками хвастаетесь?
Этим, оказывается, можно хвастаться? Буду знать. А так, что было на столе, то и заснял. Иллюстрация была на тему, что запустить передачу по SPI никаких мегаскиллов не требует.
Цитата:
Код предъявите.
Да какой там, нафиг, код вам нужен? Это код что-ли? Это два оператора присвоения:
Смех без причины... А так вам было бы полезно заглянуть и сравнить эти два RM. Для общего развития и понимания сущности.
Цитата:
Где код? Инициализацию и передачу в студию.
Да хоть в том же RM0091 под 051.
Цитата:
A.17 SPI code example A.17.1 SPI master configuration code example /* (1) Master selection, BR: Fpclk/256 (due to C27 on the board, SPI_CLK is set to the minimum) CPOL and CPHA at zero (rising first edge) */ /* (2) Slave select output enabled, RXNE IT, 8-bit Rx fifo */ /* (3) Enable SPI1 */ SPI1->CR1 = SPI_CR1_MSTR | SPI_CR1_BR; /* (1) */ SPI1->CR2 = SPI_CR2_SSOE | SPI_CR2_RXNEIE | SPI_CR2_FRXTH | SPI_CR2_DS_2 | SPI_CR2_DS_1 | SPI_CR2_DS_0; /* (2) */ SPI1->CR1 |= SPI_CR1_SPE; /* (3) */
Цитата:
A.17.3 SPI full duplex communication code example if ((SPI1->SR & SPI_SR_TXE) == SPI_SR_TXE) /* Test Tx empty */ { /* Will inititiate 8-bit transmission if TXE */ *(uint8_t *)&(SPI1->DR) = SPI1_DATA; }
RM я и без вас читал. Ваша указка на сниппеты (где рабочий, но ПОЛНОДУПЛЕКСНЫЙ пример) бесполезна, а сопоставление вот этого
scorpi_0n писал(а):
A.17.3 SPI full duplex communication code example if ((SPI1->SR & SPI_SR_TXE) == SPI_SR_TXE) /* Test Tx empty */ { /* Will inititiate 8-bit transmission if TXE */ *(uint8_t *)&(SPI1->DR) = SPI1_DATA; }
и вот этого
scorpi_0n писал(а):
Отправляем байт в DR ждём TXE=1 ждём BSY=0. Поднимаем CS если нужно. Это передача одного байта. В RM же всё разрисовано.
лишний раз доказывает мою правоту - сначала проверка флагов, затем передача.
Ваш алгоритм не соответствует мануалу и как вы голословно утверждаете, он работает, мой - соответствует, но не работает как положено. Алгоритм досикуса не соответствует мануалу, но работает как положено. Из чего можно сделать вывод - вы теоретик
Ваша указка на сниппеты (где рабочий, но ПОЛНОДУПЛЕКСНЫЙ пример) бесполезна
Это я уже понял. Вам хоть что всё бесполезно. У вас своё видение суслика даже если его там нет.
Цитата:
а сопоставление
лишний раз доказывает мою правоту - сначала проверка флагов, затем передача.
Вашей правотой там и не пахнет. Но вы можете неистово продолжать это доказывать. Главное не прерывать удовольствие от этого. Ведь все знают что только товарищ прапорщик шагает в ногу.
Цитата:
Ваш алгоритм не соответствует мануалу и как вы голословно утверждаете, он работает, мой - соответствует, но не работает как положено. Алгоритм досикуса не соответствует мануалу, но работает как положено.
Пока здесь никто кроме вас ничего голословно не утверждал. Только вы голословно утверждаете что что-то там не написано и что-то там не работает не указывая что именно. Вот когда разберётесь с тремя соснами флагами тогда может быть и у вас всё заработает как и у остальных.
Цитата:
Из чего можно сделать вывод - вы теоретик
И не просто теоретик а хороший теоретик. А ещё я этим очень горжусь!
Всё с вами понятно - своих наработок кода для F030 у вас нет
Это уже не столь существенно. Все уже знают что у вас никакие наработки не работают. Даже из RM. Но у вас ещё есть шанс. Типа последний довод королей. Пожалуйтесь на официальном сайте СТМ на их горбатые RM и SPI. Если они не онемеют от этого то обязательно вам что-то ответят.
Это уже не столь существенно. Все уже знают что у вас никакие наработки не работают. Даже из RM.
Почему же никакие не работают? Наработки dosikus у меня как раз работают как часы, в отличие от кода из RM. О том и речь, что RM и сниппеты многое не договаривают, а именно особенности работы мастера в однонаправленном режиме.
А в вашем неумелом троллинге. Это я понял. Если вы в теме то и объясните Andrew Martin в чём его ошибка. Всё остальное сказанное вами будет расцениваться как пустой трёп.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения