Пытаюсь завести ЖК на основе этой статьи: http://robocraft.ru/blog/algorithm/785.html. В дебаге видно, что влетает в assert_handler. Не инициализируется, в общем. Я подключал к порту В, видимые в коде строки поменял. Но хз, работает ли оно вообще с портом, отличным от того, что в примере. Может, кто знает либу поудачней?
Пытаюсь завести ЖК на основе этой статьи: http://robocraft.ru/blog/algorithm/785.html. В дебаге видно, что влетает в assert_handler. Не инициализируется, в общем. Я подключал к порту В, видимые в коде строки поменял. Но хз, работает ли оно вообще с портом, отличным от того, что в примере. Может, кто знает либу поудачней?
Эту строчку видел, менял. Не прокатило. Может, ещё чего пропустил.
Раз уж тема поднялась, подскажите кто-нибудь, можно ли при конфигурировании 5V-tolerant выводов STM32 в режиме открытого коллектора заделать на них ТТЛ-уровни?
Эту строчку видел, менял. Не прокатило. Может, ещё чего пропустил.
Раз уж тема поднялась, подскажите кто-нибудь, можно ли при конфигурировании выводов STM32 в режиме открытого коллектора заделать на них ТТЛ-уровни?
5V-tolerant означает, что при подаче на эта ножки 5В микросхема не сгорит, как это должно было бы случиться с микроконтроллером, питающимся от 3.3В max. Дать на выходе напряжение большее, чем напряжение питания он тоже не может. Если позарез нужны 5В, ставьте усилитель или преобразователь уровней.
Только что запустил эту либу (на F103). Без танцев с бубнами. Либа грамотная, хоть и мудрёная. И да, проверь ещё RCC_APB2PeriphClockCmd. У него там только на порт A в примере, а если хоть какая-то линия индикатора висит на другом порту, надо и его включить.
Что каждый используемый порт надо тактировать, это тоже понятно. Раз у народа работает, значит проблема у меня, как-нибудь сяду разберусь, просто пока дисплей отложил.
Такой вопрос есть. Плата STM32F4 Discovery. Решил создать проект полностью с нуля. Кейл скопировал в проект startup_stm32f4xx.s, я создал main.c, прописал int main() и попробовал скомпилить. После ругани компилятора добавил ещё system_stm32f4xx.c. После этого пустой main нормально компилится.
Далее подумал подключить светодиоды на плате, добавил в проект stm32f4_discovery.c. Если в инклуды main.c ничего не дописывать, то он ругается на STM_EVAL_LEDInit(LED3);, а если дописать #include "stm32f4_discovery.c", то он не может найти файл (т.к. файл лежит в подпапке в папке проекта). Очевидное решение - дописать путь относительно папки проекта. Но ведь для большого количества файлов это очень долго. Подскажите, можно ли как-то заставить кейл самому искать файлы, если они находятся в подпапках в папке проекта, ну или вообще, как-то ускорить подключение файлов к коду?
Создание проекта с нуля было плохой идеей, и скорее всего компилироваться он будет неправильно. Инклюд делают для заголовочного файла (.h) а не ".c". Лучше используйте заготовку проекта из StdPeriphLib.
Ок, а что я буду делать, если под рукой не окажется такой заготовки? Про инклюды понял, уберу.
Впрочем, в заготовки я заглядывал, вот только понять не могу, каким образом нужные файлы оказываются видимыми друг для друга, находясь в разных папках? Должен же быть способ легко это указать...
В примерах указаны директории в "Options for target..." -> C/C++ -> Include Paths. Попробовал у себя тоже указать, но не помогло.
UPD: поковырялся ещё, заработало, вопрос неактуален.
В примерах указаны директории в "Options for target..." -> C/C++ -> Include Paths.
С кейлом не работал (у него свой компилятор?), для GCC это директива -I (пути поиска). Обычно даже всякие графические IDE показывают эти опции при настройке.
TripleKill, я не знаю как в Keil, но в GCC чтобы собрать проект нужны: стартап (.s) - нужен для инициализации процессора при включении и вызова main(), линкер-скрипт (.ld) - указывает компилятору сегментацию памяти, правильный набор ключей компиляции (makefile) и т.п. Правильная сборка проекта с их использованием реализована в той самой заготовке. А без них скомпилировать то получится, но вот работать на железе скорее всего не будет, или будет не так.
TripleKill писал(а):
Ок, а что я буду делать, если под рукой не окажется такой заготовки? Про инклюды понял, уберу.
С таким подходом Вам не мешало бы и компилятор с нуля написать.
А без них скомпилировать то получится, но вот работать на железе скорее всего не будет, или будет не так.
Да всё получится, если разобраться во всей этой кухне, что я сейчас и пытаюсь сделать. По крайней мере удалось написать скрипт, реализующий подобную заготовку, и прикрутить это к модному ныне редактору Sublime Text 2, у которого есть плагин для парсинга Си кода + плагин для работы с GDB, что превращает его в полноценную IDE с отладкой в железе. Только вот заготовок проектов нет. Общий принцип изложил тут
И да, со всем этим бардаком помогают разобраться системы сборки типа CMake, правда добавляют еще больше бардака в голове...
Я несколько не к месту, но не могу не добавить: используйте Coocox. Я неделю мучился с IAR, чуть не поседел, когда код перестал после внесения изменений перекомпилироваться, после чего я его проклял (IAR) и установил Coocox. В Кокосе за день сделал больше, чем в Иаре за неделю. Быстрый старт для Coocox легко найдете в интернете, Яндекс поможет.
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Сб сен 01, 2012 22:40:31
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
Солнцеворот писал(а):
Я неделю мучился с IAR, чуть не поседел, когда код перестал после внесения изменений перекомпилироваться, после чего я его проклял (IAR) и установил Coocox.
Я неделю мучился с IAR, чуть не поседел, когда код перестал после внесения изменений перекомпилироваться, после чего я его проклял (IAR) и установил Coocox.
Coocox - игрушка по сравнению с IARом
Именно. В Кокосе все получается играючи, а в Иаре нужно уничтожить свою нервную систему прежде чем пустой проект удастся скомпилировать. Мне было бы интересно послушать чем, по мнению знатоков, IAR лучше Coocox`a, но боюсь это не подходящая тема для обсуждения этого вопроса и модераторы нас "зарэжют". Альтернатива - личные сообщения.
Да, но во-первых бесплатная версия отличается только надписью в заголовке (давит на совесть, ограничения функционала нет), во-вторых, если реализую свои задумки, я его куплю. Он этих денег стоит.
Если я пользуюсь линуксом, это совсем не значит, что я против платного софта Я против цен с пятью нулями и выше за софт...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения