|
shivtyokov
|
|
Управление STM8S-Discovery программой на C++ Builder26.01.2013, 00:55. Показов 16681. Ответов 23
Метки нет (Все метки)
В общем за время своего ознакомления с отладочным набором Stm8s-Dyscovery возник такой вопрос... А можно ли взаимодействовать с ним через приложение написанное на C++Builder или Visual Studyo? Иными словами... Хочу понять как сделать так что бы в программе написанной с помощью C++Builder, по нажатию на кнопку зажигался светодиод на самом модулеStm8s-Dyscovery? Я так понимаю надо подключать какие-то библиотеки или что?
|
|
| 26.01.2013, 00:55 | |
|
Ответы с готовыми решениями:
23
STM8S-Discovery Stm8S-Discovery + Rfm22 ST-LiNK от stm8s-discovery |
|
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
|
| 26.01.2013, 01:33 | |
|
STM8S на плате дисковери подключен к пк только через SWIM/ST-Link и только для программирования, моста USB-UART как у многих других плат (arduino, launchpad, PB ...) для передачи данных там нет.
Если есть внешний USB-UART мост или конвертер уровней RS232-UART вроде max232, цепляйте его к UARTу мк и пишите прошивку и программу для управления, это не сложно.
0
|
|
|
shivtyokov
|
||
| 26.01.2013, 03:44 | ||
|
||
|
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
||
| 26.01.2013, 04:27 | ||
Это таки медленный велосипед получается, не говоря про то, что во флеш писать так часто плохо, ресурс ведь 10К записей всего.
0
|
||
|
shivtyokov
|
||
| 26.01.2013, 04:41 | ||
Это таки медленный велосипед получается, не говоря про то, что во флеш писать так часто плохо, ресурс ведь 10К записей всего. Ух... Если честно я совсем недавно начал разбираться с Stm8s-Dyscovery но уже сейчас понимаю как много с ним неудобств и его мало функциональные возможности... Как я понял невозможно программно управлять светодиодами подключенными к Stm8s-Dyscovery через программу написанную на C++Builder`е? Ладно... Жалко конечно. :( |
||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
||
| 26.01.2013, 05:21 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
|
| 26.01.2013, 05:58 | |
|
Вот у ST есть аппноут по управлению мк через терминал с пк.
Они рекомендуют распаять st232(max232) в so16 с обвязкой на макетном поле для подключения к COM порту, но как по мне лучше прикупить/сделать USB-UART мостик на cp2102 или ft232. В C++ Builder для работы с COM портом должен быть готовый компонент.
0
|
|
|
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 219
|
||
| 26.01.2013, 15:32 | ||
|
shivtyokov, представьте пожалуйста задачу более четко.
Если вам нужна какая-либо железка, с помощью которой вы сможите из программы на компьютере зажечь светодиод, и не желаете при этом думать, то ваш выбор Arduino или готовые модули ввода-вывода (IOIO и пр.). Если вам надо железку именно на STM8, и не хотите сильно патиться, то как уже предлагали:
Управлять можно, но не так просто, как вам хотелось бы.
0
|
||
|
shivtyokov
|
|||||||
| 26.01.2013, 15:58 | |||||||
P.S.: Да и по ним документации, материалов исходников и т.д. на порядок больше чем по Stm8s-Dyscovery. |
|||||||
|
0 / 0 / 0
Регистрация: 16.07.2005
Сообщений: 826
|
|
| 26.01.2013, 16:43 | |
|
Программа для ПК одно, программа для МК - другое, Вы сами понимаете, что хотите?
Можно написать программу для ПК в билдере, которая по USB/UART/etc будет отправлять состояние кнопки. Для МК же придется написать программу, которая принимает посылку с ПК, разбирает её, и в зависимости от того, что там пришло включает/выключает светодиод. Итого надо будет писать две программы, одну в билдере - для ПК, вторую в IAR/Cosmic/etc для МК...
0
|
|
|
shivtyokov
|
||
| 26.01.2013, 18:05 | ||
|
||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|
| 26.01.2013, 18:40 | |
|
а каким именно образом физически связаны между собой контроллер stm8 и ПК, понимаете?
0
|
|
|
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 219
|
|
| 27.01.2013, 14:20 | |
|
shivtyokov, ясно.
Самый простой вариант связать эти 2 устройства - собрать USB-UART (посложнее) или COM-UART (попроще, но есть не на каждом компе), либо купить дата-кабель от телефона (например, DKU-5). подключать к UART STM8S105C6. Как принять байт с UART примеры есть в сообществе, либо у меня. Обойтись только средствами Stm8s-Dyscovery будет сложно. Это всё же отладочная плата, а не "заготовкеа под конечное устройство", как по приведённым ссылкам. Из вариантов "дешего и сердито" были примеры к LaunchPad от TI, ссылки у меня не осталось.
0
|
|
|
shivtyokov
|
|||||||
| 28.01.2013, 00:10 | |||||||
|
|||||||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|||||
| 28.01.2013, 00:34 | |||||
int main( void ) { PD_DDR_bit.DDR0 = 1; //Ножка PD0 конфигурируется на вывод PD_ODR_bit.ODR0 = 1; //Зажигаем нужный светодиод } Все выполняется ресурсами IAR, так? всё выполняется ресурсами МК, а IAR лишь превращает написанный выше код сначала в ассемблерные инструкции вроде tood r1,1 out DDR0, r1 out ODR0, r1 ну или как-то так, ассемблер stm8 никогда в глаза не видел. а затем уже данный код на ассемблере кодируется в набор циферок. которые потом прошиваются во флэш МК и после включения питания начинают декодироваться и исполняться.
если, как ты хочешь, скрестить ужа с ежом, что потом с полученным набором байт делать? кто именно его будет исполнять?
например: байт 0х01 - зажечь светодиод, а байт 0х00 - потушить. а другая программа в МК принимает эту команду и PD_DDR_bit.DDR0 = 1; while(1){ while(RxBufferIsEmpty()); cmd = ReceiveByte(); if (cmd==0x01) PD_ODR_bit.ODR0 = 1; if (cmd==0x00) PD_ODR_bit.ODR0 = 0; } одна проблема, на discovery, МК никак не связан с компьютером. тот USB что есть он идёт в другой МК на котором сделан отладчик, который получая специальные команды по USB может через специальный интерфейс залезть в потроха STM8S105C6, и прочитать/записать его память. связь через этот интерфейс организовать в принципе можно, выше я ссылку приводил, но так делать не очень красиво
0
|
|||||
|
shivtyokov
|
||||||||||
| 28.01.2013, 13:25 | ||||||||||
int main( void ) { PD_DDR_bit.DDR0 = 1; //Ножка PD0 конфигурируется на вывод PD_ODR_bit.ODR0 = 1; //Зажигаем нужный светодиод } Все выполняется ресурсами IAR, так? всё выполняется ресурсами МК, а IAR лишь превращает написанный выше код сначала в ассемблерные инструкции вроде tood r1,1 out DDR0, r1 out ODR0, r1 ну или как-то так, ассемблер stm8 никогда в глаза не видел. а затем уже данный код на ассемблере кодируется в набор циферок. которые потом прошиваются во флэш МК и после включения питания начинают декодироваться и исполняться.
если, как ты хочешь, скрестить ужа с ежом, что потом с полученным набором байт делать? кто именно его будет исполнять?
например: байт 0х01 - зажечь светодиод, а байт 0х00 - потушить. а другая программа в МК принимает эту команду и PD_DDR_bit.DDR0 = 1; while(1){ while(RxBufferIsEmpty()); cmd = ReceiveByte(); if (cmd==0x01) PD_ODR_bit.ODR0 = 1; if (cmd==0x00) PD_ODR_bit.ODR0 = 0; } одна проблема, на discovery, МК никак не связан с компьютером. тот USB что есть он идёт в другой МК на котором сделан отладчик, который получая специальные команды по USB может через специальный интерфейс залезть в потроха STM8S105C6, и прочитать/записать его память. связь через этот интерфейс организовать в принципе можно, выше я ссылку приводил, но так делать не очень красиво Вот попытался откомпилировать присланный вами код и сразу же нахватался ошибок...
|
||||||||||
|
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
|||
| 28.01.2013, 14:55 | |||
Если вам нужен готовые куски кода, не поленитесь открыть апликуху указанную выше. Ну и почитать референс мануал RM0016 по работе с UARTом тоже полезно.
0
|
|||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|||
| 28.01.2013, 15:13 | |||
а вот по поводу лишних скобок - всё там правильно.
0
|
|||
|
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
||
| 28.01.2013, 15:17 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
||
| 28.01.2013, 16:19 | ||
ответ "через усб" неправильный, чтобы в этом убедиться можно для начала посмотреть в даташит на отсутствие усб у stm8, а потом еще посмотреть на электричекую схему самого дискавери.
0
|
||
| 28.01.2013, 16:19 | |
|
Помогаю со студенческими работами здесь
20
stm8s-discovery + stm8s207cb(c8) Проблемы с I2C - STM8S Discovery Подключение к STM8S-Discovery и IAR st-link встроенный в stm8s discovery Большое потребление STM8S-discovery. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|