КРАМ писал(а):Вы когда нибудь брали "напрямую у производителя"?![]()
Регулярно покупаем без посредников. Российскую фирму, скорее всего, пошлют, а если иметь представительство в ЮВА, то проблем никаких нет.
КРАМ писал(а):Вы когда нибудь брали "напрямую у производителя"?![]()
Леонид Иванович писал(а):Что там еще есть необходимое для начальной настройки контроллера? Я посмотрел и ничего такого не обнаружил. Или я не прав?
Леонид Иванович писал(а):А сделаю так, как посчитаю нужным, и именно с помощью той информации, которую хочу получить в ответ.
Леонид Иванович писал(а):Нет, проект не заработал. Чтобы он заработал, мне предстоит разобраться с каждым битиком, а на это нужно уйма времени.
Леонид Иванович писал(а):Смущает то, что видел в сети много примеров, где для аналогичных целей проделывается гораздо больше записей во всякие регистры. Я хочу, чтобы специалист по STM32 глянул на этот код и сказал, достаточно ли его для включения тактирования. Возможно, я что-то не учел.
coredumped писал(а):Чтоб заработал (в первом приближении) Ваш проект - времени нужно... приблизительно часа 2. При условии, что есть собранный прототип.
Леонид Иванович писал(а):Возьмите файл system_stm32f10x.c из CMSIS - там есть все необходимые для запуска операции. Файлик написан специалистами. Он 100% работающий. Что Вам еще нужно?
Код: Выделить всё
#define PA_IN GPIOA->MODER = 0x002A0000
#define PA_OUT GPIOA->MODER = 0x002A5555
#define IORD_PIN GPIO_Pin_10
#define IOWR_PIN GPIO_Pin_11
#define IORD_LO GPIOB->BRR = IORD_PIN
#define IORD_HI GPIOB->BSRR = IORD_PIN
#define IOWR_LO GPIOB->BRR = IOWR_PIN
#define IOWR_HI GPIOB->BSRR = IOWR_PIN
#define A0_PIN GPIO_Pin_13
#define A1_PIN GPIO_Pin_14
#define A2_PIN GPIO_Pin_15
#define SET_ADDR_0 GPIOB->BRR = 0x0000E000
#define SET_ADDR_1 GPIOB->BSRR = 0xC0002000
#define SET_ADDR_2 GPIOB->BSRR = 0xA0004000
coredumped писал(а):В этом файле, помимо настройки клоков, устанавливается таблица векторов прерываний
coredumped писал(а):Для быстрой смены пинов, удобно использовать макросы. Вот, для примера
Код: Выделить всё
Gpio<PORTC, PIN9> Pin_Led;
Pin_Led.mode(Mode::OUTPUT_2MHz);
Код: Выделить всё
Pin_Led = 1;
Леонид Иванович писал(а):Таблица векторов прерываний находится в другом файле - startup_stm32f10x_md_vl.s. Но как это использовать?
Chettuser писал(а):Подкину корм тролям: 32F429IDISCOVERY
coredumped писал(а):Обратите внимание на такой оператор SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;
coredumped писал(а):Что же касается С++, то я противник применения этого монстра во встроенных системах
coredumped писал(а):Или погуглите на буржуйских форумах, там извращенцев хватает.
HHIMERA писал(а):Верх идиотизма... никакой информации...
Chettuser писал(а): а с STM32 разбираться и дорогущие средства покупать - это невыгодно ИМХО

Леонид Иванович писал(а):Единственная радость от появления дешевых STM32 - это то, что для встроенных систем теперь тоже можно писать на C++. Лишняя производительность процессора и оверхед друг друга скомпенсируют. Структура программы, написанной на C++ намного красивее. Что касается оверхеда, то не так он велик, как про него обычно думают.
oleg110592 писал(а):по аналогии с PC где сейчас никто практически не пишет на чистом Си (разве что драйвера и пр. системное)

coredumped писал(а):Но делать классы для работы GPIO - это извращение.