Буфер данных Stm32f103c8

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18592
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Буфер данных Stm32f103c8

Сообщение ARV »

этот буфер вы сами выделяете в памяти и указываете его адрес в той самой структуре. и размер этого буфера тоже ваша обязанность указать.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
khch
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср июл 18, 2018 11:51:59

Re: Буфер данных Stm32f103c8

Сообщение khch »

У меня не получается осилить это. Покажите пожалуйста как это сделать.
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Буфер данных Stm32f103c8

Сообщение VladislavS »

Код: Выделить всё

uint8_t MyBigBuf[1024];
hspi->pRxBuffPtr = MyBigBuf;
Только буфер не на стеке, а глобальный или в куче.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Буфер данных Stm32f103c8

Сообщение Мурик »

khch писал(а):У меня не получается осилить это. Покажите пожалуйста как это сделать.
Может просто не ваше? :)

А если серьезно, то несмотря что вы написали [uquote="khch",url="/forum/viewtopic.php?p=3433187#p3433187"]Бобры вечер, люди.
Изучаю, только начал. И мне нужна помощь (не такая типа "мля, вот нагугли, кури даташиты...", крили гуглили).[/uquote]дам совет прочитать обучающие материалы по Си и и попытаться понять что в них написано.

Завязывайте курить бобров! :))) Скачайте даташит и изучите работу SPI и DMA.
На мой взгляд SPL гораздо понятнее и нагляднее при настройке DMA чем HAL.
Реклама
Эиком - электронные компоненты и радиодетали
khch
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср июл 18, 2018 11:51:59

Re: Буфер данных Stm32f103c8

Сообщение khch »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3433684#p3433684"]

Код: Выделить всё

uint8_t MyBigBuf[1024];
hspi->pRxBuffPtr = MyBigBuf;
Только буфер не на стеке, а глобальный или в куче.[/uquote]

Да я взял тогда массив 512 байт, но не смог достучаться до

Код: Выделить всё

hspi->pRxBuffPtr = MyBigBuf;
И я еще засомневался, будет ли он писать в этот массив последовательно или каждый раз в начало (нулевой элемент).
Ведь дата регистр SPI у меня 8 (16) битный. Нужно ли писать там какой-то цикл, который будет раскидывать принятые байты последовательно?

Адрес взял в SRAM. Конкретно 0x30000000. Для stm32c8t6.

PS Конечно я буду читать книги по Си и все такое.... Вы мне очень помогли. Сам бы я не додумался поискать.
PS Вас когда учили ходить, а вы падали, вам говорили "может это не твое?"
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18592
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Буфер данных Stm32f103c8

Сообщение ARV »

khch писал(а):Нужно ли писать там какой-то цикл, который будет раскидывать принятые байты последовательно?
скажите, только честно, сколько страниц про DMA вы прочли, прежде чем задать этот вопрос?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
khch
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср июл 18, 2018 11:51:59

Re: Буфер данных Stm32f103c8

Сообщение khch »

ARV
Это неважно. Потому что я не смог понять. Но потратил на изучение 4 дня. Может мало прочел, может не то прочел.... Какая разница, я не смог найти то, что надо, не смог уловить смысл прочитанного.... Это неважно.
Мне нужно понять как это работает. И я пойму. С вами - хорошо, будет быстро. Без вас... ну на нет и суда нет.
тоже ваша обязанность указать.
- это полностью характеризует ваше отношение ко мне/всем/неграм/азиатам/....

Но видимо и с этим придется мирится... Слушайте, честное слово, я не буду вас обременять заботами обо мне. Можете вообще никак не беспокоится. Я понимаю, что вы изучали, учились, тратили деньги и время. И теперь вы не обязаны делиться этим с кем-либо. Но и нравоучения читать тоже необязательно. Я достаточно зрелый человек, чтобы понимать когда стоит и когда не стоит обращаться за помощью.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Буфер данных Stm32f103c8

Сообщение VladislavS »

[uquote="khch",url="/forum/viewtopic.php?p=3433736#p3433736"]Нужно ли писать там какой-то цикл, который будет раскидывать принятые байты последовательно?[/uquote]Не нужно. DMA сам всё сделает, если правильно настроить.
[uquote="khch",url="/forum/viewtopic.php?p=3433736#p3433736"]Адрес взял в SRAM. Конкретно 0x30000000.[/uquote]
Изображение
Вложения
nelzya-prosto-tak-vzyat-i-boromir-mem_184090852_orig_.jpg
(43.75 КБ) 777 скачиваний
Последний раз редактировалось VladislavS Вт авг 07, 2018 20:50:30, всего редактировалось 1 раз.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Буфер данных Stm32f103c8

Сообщение Мурик »

khch писал(а):Адрес взял в SRAM. Конкретно 0x30000000.
Что находится в STM32F103C8T6 по этому адресу?
СпойлерИзображение
Memory.png
(176.44 КБ) 209 скачиваний
khch писал(а):Вас когда учили ходить, а вы падали, вам говорили "может это не твое?"
Вместо того чтобы учится ходить вы начинаете очень быстро бегать. Сначала изучите основы, а потом пытайтесь их применить на практике и не торопитесь.
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Буфер данных Stm32f103c8

Сообщение arkhnchul »

[uquote="khch",url="/forum/viewtopic.php?p=3433736#p3433736"]Да я взял тогда массив 512 байт, но не смог достучаться до[/uquote]
что значит "не смог достучаться"? Компилятор ругнулся на что-то? Контроллер повис? Из массива явный мусор читался? Комп загорелся при попытке?
[uquote="khch",url="/forum/viewtopic.php?p=3433736#p3433736"]Адрес взял в SRAM. Конкретно 0x30000000.[/uquote]
ЗАЧЕМ?
[uquote="khch",url="/forum/viewtopic.php?p=3433736#p3433736"]Для stm32c8t6[/uquote]
нет таких контроллеров. Для указания модели тут важна часть сразу после stm32. Предположу, что у вас распространенная платка "blue pill" с stm32f103c8t6. Вы таки в курсе, что у этого контроллера SRAM всего 20 килобайт, и кончаются ее адреса на 0x20005000? Дальше ничего нет, вплоть до начала адресов периферии.
[uquote="khch",url="/forum/viewtopic.php?p=3433736#p3433736"]PS Вас когда учили ходить, а вы падали, вам говорили "может это не твое?"[/uquote]
если хотите такую аналогию, то вы, научившись ходить, спрашиваете, как вам на футбольшом поле на скорости с мячом обходить защитников. И обижаетесь на советы сначала осилить хотя бы осмысленный бег.
khch
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср июл 18, 2018 11:51:59

Re: Буфер данных Stm32f103c8

Сообщение khch »

file:///C:/Users/khch/Downloads/STM-STM32-STM32F101CB-Learning%20Centre%20MCU-User%20Manuals-STMicroelectronics.Manuals_1.pdf
page 26 - Вот оттуда брал данные для размещения буфера. Неправильный мануал взял.

Добавлено after 7 minutes 40 seconds:
что значит "не смог достучаться"
- неправильно выразился. Имел ввиду "недопер". До бинарника дело не доходит. Я пока не пойму что делаю. Куда там грузить в контроллер.
у этого контроллера SRAM всего 20 килобайт
- хорошо. Я изменю размещение. Прочитаю и найду.
И обижаетесь
Я никогда не обижаюсь. Никто мне ничего не обязан. И я понимаю, что у каждого свои представления, как нужно правильно изучать. И каждый по-своему прав. И понимаю, что сюда заходят, получить дешевый (во всех смыслах и по времени тоже ) ответ на свой вопрос. Но уж на то и форум.
И я не то, чтобы не читаю.
Просто понял, что не могу ухватить какую-то очень важную вещь в этом всем. Надоело биться головой.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Буфер данных Stm32f103c8

Сообщение Мурик »

khch писал(а):ile:///C:/Users/khch/Downloads/STM-STM32-STM32F101CB-Learning%20Centre%20MCU-User%20Manuals-STMicroelectronics.Manuals_1.pdfpage 26 - Вот оттуда брал данные для размещения буфера.
И там есть упоминание про ОЗУ по адресу 0x30000000? Можно скриншот упомянутой 26 страницы этого документа? :)
khch писал(а):До бинарника дело не доходит.
Как компилировать программу разобрались? В какой среде работаете?
khch писал(а):Куда там грузить в контроллер.
Во флеш. :)
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Буфер данных Stm32f103c8

Сообщение arkhnchul »

[uquote="khch",url="/forum/viewtopic.php?p=3433771#p3433771"]Я изменю размещение[/uquote]
еще раз повторю вопрос: на кой хрен вам руками что-то по абсолютным адресам размещать? Объявите глобальную переменную-массив, и все, линкер сам разберется, куда его девать.
[uquote="khch",url="/forum/viewtopic.php?p=3433771#p3433771"]Просто понял, что не могу ухватить какую-то очень важную вещь в этом всем. Надоело биться головой.[/uquote]
патамушта бьетесь не в ту стену. Сначала надо понимать вот это - https://rsdn.org/article/cpp/ObjectsAndPointers.xml - а потом уже пытаться использовать.
khch
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср июл 18, 2018 11:51:59

Re: Буфер данных Stm32f103c8

Сообщение khch »

И там есть упоминание про ОЗУ по адресу 0x30000000? Можно скриншот упомянутой 26 страницы этого документа?
-- у меня не получается отправить изображение. Разбираться сейчас не хочу с этим. Да, в этом мануале 0x20000000 -- 0x3FFFFFFF отведено под оперативку. Таблица называется Behavior of memory accesses.
Как компилировать программу разобрались? В какой среде работаете?
Да с этим проблем нет, Кейл 5. St-link моргание диодом, PWM, даже 2004 дисплей подключил, но это уже с готовой программой -- не разбирался что там (а зря).
Дебагом пользоваться пока не умею только.
Во флеш естественно. :) Хотя можно и в ОЗУ.
- я не в этом смысле. Я имел ввиду, что я пока не могу программу написать так, чтоб понятно было - что там грузить?? Кого обманывать.

Мне еще надо механизм чтения набрать. Вот теперь этим и занят.

Добавлено after 8 minutes 5 seconds:
arkhnchul
Понимаете, я вот уже несколько месяцев учу этот Си++. Задачки по учебнику решаю нормально, понимаю довольно трудные вещи. В стерильной среде учебника.
В какой-то момент понял, что чего-то не понимаю. Масштабы непонимания были с ужасом осознаны, когда попросил одного знакомого дать мне реальную проблему. Я понял, что я ничего не понимаю в программировании. И вот я тут.
Но оставлять не буду. Пох....
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Буфер данных Stm32f103c8

Сообщение Мурик »

khch писал(а):у меня не получается отправить изображение. Разбираться сейчас не хочу с этим. Да, в этом мануале 0x20000000 -- 0x3FFFFFFF отведено под оперативку. Таблица называется Behavior of memory accesses.
Из этих данных следует что в МК 0.5 ГБ оперативки, но это не так. В STM32F103C8T6 20 КБ ОЗУ.
Нужно смотреть даташит на нужный контроллер, а не первый попавшийся.
Скачайте документацию на официальном сайте. https://www.st.com/en/microcontrollers/stm32f103c8.html
Нужны Datasheet и Reference Manuals.
khch писал(а):я вот уже несколько месяцев учу этот Си++.
Для МК достаточно Си. На плюсах писать можно, но не обязательно.
khch писал(а):Задачки по учебнику решаю нормально, понимаю довольно трудные вещи.
Для начала напишите простые программы, уже упомянутые мигание светодиодом (в цикле, по таймеру, через DMA). Только лучше на этом этапе кубом не пользоваться. Программа должна быть на регистрах, или в крайнем случае SPL.
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Буфер данных Stm32f103c8

Сообщение arkhnchul »

[uquote="khch",url="/forum/viewtopic.php?p=3433791#p3433791"]в этом мануале 0x20000000 -- 0x3FFFFFFF отведено под оперативку[/uquote]
это адресное пространство. Например, у вас на компьютере с архитектурой amd64 под адреса виртуальной памяти отведено 48 бит, это возможность адресации 256 терабайт. Я вот более чем уверен, что столько там просто физически нет, даже если отрядить все дисковое пространство под своп)
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Буфер данных Stm32f103c8

Сообщение VladislavS »

khch, притормозите немного. Отступите назад на мигание светодиодом, запустите отладчик, посмотрите как программа устроена. Где вектора прерываний, данные, программа, стек и порты ввода-вывода. Как это всё связано. Без понимания основ вся мощь С++ будет бесполезна. А SPI, DMA, таймеры это всё придёт с опытом.
khch
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср июл 18, 2018 11:51:59

Re: Буфер данных Stm32f103c8

Сообщение khch »

Нужно смотреть даташит на нужный контроллер, а не первый попавшийся.
- надо признать, что таки да.... Лоханулся. Оправданий мне нет. Но откуда я мог знать, что для оперативки это много...
Для начала напишите простые программы, уже упомянутые мигание светодиодом (в цикле, по таймеру, через DMA). Только лучше на этом этапе кубом не пользоваться. Программа должна быть на регистрах, или в крайнем случае SPL.
Легко сказать. У меня нет учителя. Все самому. Пытаюсь осилить CMSIS - не могу. А SPL обсирают, типа не обслуживается больше...
притормозите немного. Отступите назад на мигание светодиодом, запустите отладчик, посмотрите как программа устроена. Где вектора прерываний, данные, программа, стек и порты ввода-вывода. Как это всё связано. Без понимания основ вся мощь С++ будет бесполезна. А SPI, DMA, таймеры это всё придёт с опытом.
--- Исключено. Я топчусь на месте уже месяц с этими миганиями. Только вперед.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Буфер данных Stm32f103c8

Сообщение VladislavS »

Какой нах вперёд, если вы объём памяти контроллера на адресное пространство наложить не можете. Я бы вообще отправил на асме диодом мигать для просветления, но у ARM он негуманный...
khch
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср июл 18, 2018 11:51:59

Re: Буфер данных Stm32f103c8

Сообщение khch »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3433824#p3433824"]Какой нах вперёд, если вы объём памяти контроллера на адресное пространство наложить не можете. Я бы вообще отправил на асме диодом мигать для просветления, но у ARM он негуманный...[/uquote]

У вас все???

Добавлено after 15 minutes 8 seconds:
[uquote="VladislavS",url="/forum/viewtopic.php?p=3433824#p3433824"]Я бы вообще отправил на асме диодом мигать для просветления[/uquote]

С удовольствием. Только одному не получается выучить.
Ответить

Вернуться в «ARM»