Перейти к содержанию
    

вопрос совсем начинающего STM32F4 + Keil + настройки порта

14 минут назад, Darth Vader сказал:

Прочитайте ещё эту статью по работе с портами.

Намешано все что только можно. И явно не для начинающего. Бесконечная лапша макросов и понтов C++ в том месте, где это вот вообще не нужно. Не рекомендую.

Нэйминг и распределение физических ножек МК определяется для проекта один раз при написании соответствующего драйвера и больше эту тему не затрагивают. Поэтому, лучше потратить время на написание боевого ПО, а не красивую работу с ножками упрятать в функции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Arlleex said:

Намешано все что только можно.

Классическая статья. Прямо вот эталонно-показательный библиотечный код. То, что "кишки" довольно сложные, неважно - главное, для пользователя  это заканчивается простым понятным интерфейсом, а компилятор успешно распутывает все эти шаблоны в обыкновенную запись в регистр без всяких промежуточных вычислений в рантайме. Ведь эта библиотека пишется тоже один раз (и даже не Вами ;-) ).

Сам использую библиотеку Антона Гусева с очень похожим подходом (и даже перепилил её на NRF52).

Гораздо удобнее написать

using Pin_LED = Pin<'A', 6>;

Pin_LED::Mode(OUTPUT);

Pin_LED::On();

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

 

Но да, соглашусь, не уровень совсем начинающего. Если не написать, то хотя бы прочитать и понять этот код всё равно очень желательно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня получилось "Хеллоу ворлд"!!!!

 photo_2019-03-12_21-36-02.thumb.jpg.15d33c2d685b034b7c73d441d7767fbb.jpg

Спасибо. Ваша помощь мне очень помогла. Ваши ссылки, мысли и рекомендации я буду ещё несколько раз медленно перечитывать (по мере познания новых знаний). 

 

У меня ещё появился вопрос:

В ходе обсуждения несколько раз акцентировали внимание на функции программной задержки delay 

//---Функция задержки---//

void delay(int a)

{

    int i = 0;

    int f = 0;

    while(f < a)

    {

        while(i<60)

            {i++;}

        f++;

    }

}

 

Подскажите правильную методичку для создания и изучения аппаратной задержки. Например как создать скорость и паузы при пересылке массива букв в данный символьный монитор без остановок работы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почитайте статьи раз и два.

Как сконфигурировать таймер - почитайте RM на ваш контроллер. Или через Куб.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/11/2019 at 11:34 PM, esaulenka said:

Сам использую библиотеку Антона Гусева

Не подскажете ссылку на эту библиотеку? А то гугл какого-то неправильного Антона Гусева предлагает :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про работу с выводами портов обсуждалось здесь. Там накидано много вариантов и простых и не очень.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...