Вот что выяснил-каждые 0,415 сек на выводе ресет STM32F040 у меня появляется лог 0,то есть каждые 0,415 сек STM перезагружается и программа работает сначала,потому толком ничего не выходит,загрузил простой блинк-если поставить переключение порта (на нем стоит резистор 1 ком и светодиод) 0,1 сек то успевает моргать,если поставить переключение на 0,5 сек то светодиод никогда не зажигается(в программе изначально на порту лог ноль,задержка,потом лог единичка) Потому у меня и грабли с I2C...
Приветствую уважаемые, подскажите причину следующего поведения. Имеется F0 у которого настраиваю SPI с программным CS (чаще CS управляю "железно"). Сама настройка ничего экзотического не содержит - Master, MOSI, полярности и пр. все по дефолту. И при выполнении следующего кода:
Т.е. получается, что CS дергается в момент передачи данных, а не после. Мне вот этот момент и не понятен неужели это из за разницы в частоте тактирования GPIO и SPI (тут у меня максимально маленький делитель /2)? Для исправления ситуации я прикостылил ассемблерную вставку с nop'ами, результат стал, каким я его и ожидал изначально:
Но мне само решение мне не особо нравится и попутно на сколько поможет исправить ситуацию если использовать DMA?
Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.
Т.е. получается, что CS дергается в момент передачи данных, а не после. Мне вот этот момент и не понятен неужели это из за разницы в частоте тактирования GPIO и SPI (тут у меня максимально маленький делитель /2)?
Нет, это потому что ты CS дергаешь в момент передачи данных, а не после.
Что привлекает в SiC по сравнению с кремнием, и какие особенности делают компоненты SiC часто используемыми, несмотря на более высокую стоимость в сравнении с кремниевыми высоковольтными устройствами? – Объясняет специалист ведущего разработчика силовых приборов из карбида кремния, компании Infineon.
На предыдущей странице написано как ждать окончания передачи, даже именно для F0.
Спасибо за наставление на путь истинный )) В моём случае достаточно проверки BUSY флага т.к. данные посылаются одиночные. Ну соответственно это получается чуть быстрее: - Только busy
В SeS cтояла L1 поменял на "L2 speed" ситуация кардинально изменилась - пауза стала одинаковой в обоих случаях 1.6 µs В очередной раз компилятор оказался умнее меня )
Не получается завести DMA для изменения содержимого CCR1 таймера TIM1 на STM32F103. На F072 у меня завелось без проблем, здесь же чертовщина какая-то. Инициализирую:
И фигвам: вместо того, чтобы один раз выдать 9 импульсов с плавно нарастающей шириной, получаю бесконечную серию импульсов длительностью 111нс с шагом в микросекунду… Вот чего этой собаке надо?
если так сделать, последний импульс обрезается, как будто бы в массиве была единица… Проблема в том, что
Код:
TIM1->DIER = TIM_DIER_UIE
срабатывает сразу же - и вызывает обработчик прерывания, который останавливает таймер. Т.е. нужно каким-то чудом указать, чтобы прерывание сработало в следующий раз.
В прерывании по завершению передачи можно и так написать: TIM1->CR1=0 — ничего не изменится. Устанавливать линию в 0 внутри прерывания таймера нельзя: слишком медленно, в итоге получается лишний короткий импульс.
Котаны здарова. Столкнулся с тем что мой китайский J-Link V8 не поддерживает Cortex M7. Перешитый свисток поддерживает. Но встроенный в кубиде софт джилинка не знает H743IG. Кароче пришлось откатиться на стлинк. Я думаю со временем кубиде обновят.
Вопрос вот в чем - у китайцев есть некий отладчик J-Link V11. Кто-то пользовался?
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Ср янв 27, 2021 17:04:35
Опытный кот
Карма: 9
Рейтинг сообщений: 154
Зарегистрирован: Сб дек 22, 2012 08:17:42 Сообщений: 707 Откуда: Караганда, Казахстан
Рейтинг сообщения:0
Коллеги, напомните, плз. Кейл, на одном компе v5.28, на втором - 5.29. Делаю билд/ребилд проекту, все ОК, собрался. Давлю LOAD, загружается, говорит
Код:
Erase Done. Programming Done. Verify OK. Application running ... Flash Load finished at 19:17:11
и тишина. МК висит. Нажмешь кнопик RESET, заводится и работает. Выключишь и включишь питание - тоже работает.
Галочка Reset and Run стоит это та, которая Flash -> Configure Flash toold... в открывшемся окне "Options for Target 'xxxx'" вкладка Debug, педаль Setting возле окошка Use ST-link Debugger и там на вкладке Flash Download в окошке Download Function Я ПОСТАВИЛ галочку Reset and Run, а эта скотина ее игнориоует. Не помню, вроде-бы, начиная с 5.25 или 5.26 надо было ставить еще галочку Enable на следующей закладке - Pack, но (не то с 5.27, не то с 5.28) эта скотина на нее тоже не реагирует.
Вопрос стандартный: что я делаю не так?
_________________ Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Здравствуйте! Прошу помощи по считыванию stm32f303rct6. С stm никогда не сталкивался, st-link нет. Знаю, что можно считать через бутлоадер по USART. Подскажите с подключением и подтяжкой boot0 (и я так и не понял по поводу boot1 в этом мк).
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения