Кто-то любит пирожки, а кто-то - нет.
Теперь надо, чтоб была какая-то видимость от работы этого агрегата. Например, светодиодики по кругу бегали. То есть моргали.
Их там четыре штуки. На порту D, биты 12-15.

Общая идеология работы с периферией в АРМах такова:
1. Включаем питание соответствующей периферии (то есть тактирование). За это отвечают регистры RCC->AHB1ENR и подобные. Шин там несколько.
2. Настраиваем на тот режим, какой хотим.
3. Активно пользуем.

читать дальше

Готовый пример файла main.c.

<< Предыдущее Следующее >>

@темы: arm, электроника, stm32f4discovery, stm32

Комментарии
21.03.2013 в 13:19

код программы рабочий но надо убрать эту хрень а то gcc ругаетса

void SystemInit(void)
{
// Пока тут ещё ничего нет.
}
21.03.2013 в 13:36

Кто-то любит пирожки, а кто-то - нет.
Гость, что за ошибка? Я этот проект в gcc не собирал.
22.03.2013 в 16:29

у вас есть скайп или мыло вкнтакт?
22.03.2013 в 16:36

ошибка In function `SystemInit':





так что если есть контакты ваши какието буду признателен
22.03.2013 в 16:42

Кто-то любит пирожки, а кто-то - нет.
Гость, а, ну я так и думал. Если подключать в проект файл system_stm32f4xx.c, то да, SystemInit надо убрать. Здесь он в роли заглушки на время отсутствия оного или аналогичного файла. В следующем посте говорится =)
Я предполагал, что тот, кто читает, ещё не знает про этот файл.

Да, yateplofizik@yandex.ru, например.
23.03.2013 в 02:48

да ваще чяйник в этом деле ваши диоды это первое что я смог скомпилировань и запустить на своей плате STM32F4-Discovery
23.03.2013 в 13:41

Кто-то любит пирожки, а кто-то - нет.
Гость, ну и хорошо ^^

Но напишу замечание пораньше про SystemInit
08.05.2013 в 11:42

Как можно съесть слона? По кусочку за раз
с использованием STM32F4xx_StdPeriph_Driver нагляднее
и настройка входов/выходов (и прочей требухи), и зажигание светодиодиков
08.05.2013 в 11:53

Кто-то любит пирожки, а кто-то - нет.
DAndy_13, я знаю, но по стандартной библиотеке периферии и так дофига статей. Да и библиотеку подключать тоже вот надо, подключать искходники драйверов, указывать пути к заголовочным файлам — морока><
В общем, здесь акцент именно на прямую работу с регистрами. По самому минимуму, только чтоб включить и использовать.

А я вот самопалом пользуюсь, если честно.
08.05.2013 в 12:08

Как можно съесть слона? По кусочку за раз
даже и не знаю, что сказать...
мороки с подключением ровно на пару кликов мыши ))))

а от самопалов лучше уходить
08.05.2013 в 12:18

Кто-то любит пирожки, а кто-то - нет.
DAndy_13, да, я не против библиотеки, хотя она мне не очень нравится =)

Мм... Тут какое дело, мне хочется делать проекты таким образом, чтобы сам алгоритм не зависел от того, где его запускают. И некоторый уровень абстракции я всё равно буду делать. Внутри него, конечно, можно и библиотеку использовать, но обычно там настолько простые вещи, что мне даже как-то лень подключать ради этого SPL.
08.05.2013 в 12:26

Как можно съесть слона? По кусочку за раз
про структуру проекта и абстракции я тут уже прочитал - это всё правильно - так держать! =)

я о том, что просто можно съэкономить кучу времени на написании собственного велосипеда, подключив уже готовые абстракции

>обычно там настолько простые вещи
касательно gpio - да
UART/SPI - тоже

а вот dcmi или can намного легче настраивается через готовые структуры
08.05.2013 в 12:32

Кто-то любит пирожки, а кто-то - нет.
DAndy_13, согласен, но с такой сложной периферией я не работал пока .з. Ввиду её отсутствия, конечно =D

То есть с каном имел дела, но в at90can128 что ли, но там пять регистров — и всё настроено и работает.
26.07.2013 в 19:13

Извините, а для чего в выражении (1UL << 12 * 2) писать 1UL? Можно ли просто написать 1?
26.07.2013 в 20:20

Кто-то любит пирожки, а кто-то - нет.
Гость, вообще, Keilу пофиг, по-моему, но это говорит о том, что у единицы тип unsigned long (т.е. 32 бита) и обрезать не стоит, как и считать, что 31 бит знаковый... По крайней мере я для совместимости с иными платформами и вообще для отсутствия взаимонепонимания с компилятором всегда пишу =)
20.08.2013 в 07:52

А как узнать время переключения, (1/168000000)*1000000? Если так посчитать получается 6 миллисекунд. Но мне кажется там другое время(
20.08.2013 в 07:53

А как узнать время переключения, (1/168000000)*1000000? Если так посчитать получается 6 миллисекунд. Но мне кажется там другое время(
20.08.2013 в 09:11

Кто-то любит пирожки, а кто-то - нет.
Гость, стоит учесть, что там не одна инструцкия на цикл идёт =) Сколько именно - надо смотреть в дизассемблере. Да и их число сильно меняется при разных режимах оптимизации. Для обучения можно подобрать "на глаз", а в реальных проектах лучше такие конструкции и задержки не использовать вовсе (которые большие).