Главная » Микроконтроллеры
Призовой фонд
на октябрь 2021 г.
1. Рюкзак Mean Well
Компэл
2. Инвертор авто Mean Well 150 Ватт
Компэл
3. Термос MeanWell
Компэл
4. 100 руб.
От пользователей

Похожие статьи:


STM32F4. Урок 4 - цифровые входы

Данная библиотека используется для считывания данных с цифровых выводов микроконтроллера. Используемые выводы должны быть объявлены в «stm32_ub_dig_in.h» и присвоены соответствующие значения в файле «stm32_ub_dig_in.c». Для каждого входа можно так же включить подтягивающее сопротивление (три режима: отсутствует, подтяжка «вверх», подтяжка «вниз»).

Начиная с библиотеки версии 1.2 в «stm32_ub_dig_in.h» можно включить защиту от дребезга контактов, использующую таймер. Тогда станут доступны функции "OnHiLevel", "OnHiEdge" и "OnLoEdge". Эти функции возвращают "true", когда происходит событие.

В примере используется 4 вывода: PD3, PD6, PD11, PE4.

Требования:

  • Подключаемые модули CooCox-IDE : GPIO (TIM, MISC)
  • Поддерживаемые библиотеки: отсутствуют.

Перечисления:

typedef enum 
{
  DIN_PD3 = 0,    // PD3-Pin
  DIN_PD6 = 1,    // PD6-Pin
  DIN_PD11 = 2,   // PD11-Pin
  DIN_PE4 = 3     // PE4-Pin
}DIN_NAME_t;

Функции:

void UB_DigIn_Init(void);                    // Инициализация выводов цифровых входов
BitAction UB_DigIn_Read(DIN_NAME_t dig_pin); // считать уровень на входе (без защиты от дребезга)
bool UB_DigIn_OnHiLevel(DIN_NAME_t dig_pin); // true, если установлен высокий уровень (с защитой от дребезга)
bool UB_DigIn_OnHiEdge(DIN_NAME_t dig_pin);  // true, если появился высокий уровень по фронту (с защитой от дребезга)
bool UB_DigIn_OnLoEdge(DIN_NAME_t dig_pin);  // true, если появился низкий уровень по фронту (с защитой от дребезга)

Пример использования:


//--------------------------------------------------------------
// File     : main.c
// Datum    : 16.02.2013
// Version  : 1.0
// Autor    : UB
// EMail    : mc-4u(@)t-online.de
// Web      : www.mikrocontroller-4u.de
// CPU      : STM32F4
// IDE      : CooCox CoIDE 1.7.0
// Module   : CMSIS_BOOT, M4_CMSIS_CORE
// Function : Demo of Button Library
// Reference: These two files must be written to 8MHz
//              "cmsis_boot/stm32f4xx.h"
//              "cmsis_boot/system_stm32f4xx.c"
//--------------------------------------------------------------

#include "main.h"
#include "stm32_ub_dig_in.h"
#include "stm32_ub_dig_out.h"

int main(void)
{
  BitAction wert;

  SystemInit(); // Инициализация настроек кварца

  UB_DigIn_Init();  // Инициализация цифровых входов
  UB_DigOut_Init(); // Инициализация цифровых выходов

  while(1)
  {
	// Зачитать уровень на входе PD3 и установить полученное значение на выходе PB2
    wert=UB_DigIn_Read(DIN_PD3);
    UB_DigOut_Pin(DOUT_PB2,wert);
	// Зачитать уровень на входе PD6 и установить полученное значение на выходе PB7
    wert=UB_DigIn_Read(DIN_PD6);
    UB_DigOut_Pin(DOUT_PB7,wert);
	// Зачитать уровень на входе PD3 и установить полученное значение на выходе PC6
    wert=UB_DigIn_Read(DIN_PD11);
    UB_DigOut_Pin(DOUT_PC6,wert);
	// Зачитать уровень на входе PE4 и установить полученное значение на выходе PC13
    wert=UB_DigIn_Read(DIN_PE4);
    UB_DigOut_Pin(DOUT_PC13,wert);
  }
}

Режим работы:

  • GPIO-выводы PB2, PB7, PC6 и PC13 настраиваются как цифровые выходы (в библиотеке);
  • GPIO-выводы PD3, PD6, PD11 и PE4 настраиваются как цифровые входы (в библиотеке);
  • на входах считывается уровень сигнала, и полученные данные устанавливаются на выходах.

Библиотека, использованная в примере: stm32_ub_dig_out, stm32_ub_dig_in.

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

Оригинал статьи

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 3
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 3 чел.

Комментарии (8) | Я собрал (0) | Подписаться

0
Никита #
А чем это отличается от стандартной библиотеки, что ST предоставляет для работы с железом?
Ответить
0

[Автор]
Rough #
1) Подробное описание работы
2) В этом цикле идет развитие от простого к сложному, позднее появятся интересный статьи, такие как USB и тд
Ответить
-2
Никита #
Ну так и их библиотека подробно описана. Зачем создавать велосипед? Кроме того их библиотека уже неоднократно отлажена и поддерживает практически всё семейство их камней и удобна в использовании. У Вас такая поддержка есть? И как пользователю настроить отдельно порты, если они у Вас конфигурятся в библиотеке?
Ответить
0
talibanich #
Это перевод статьи. Если есть вопросы к автору, то и спросите у него в блоге. Ссылка на оригинал есть.
Ответить
0

[Автор]
Rough #
Библиотеку можно подготовить самостоятельно для Вашего проекта, добавить все порты, которые Вы будете использовать. Комментарии в библиотеке помогут понять как это сделать.
Ответить
0
RadioV #
А с какой периодичностью будут выходить переводы?
Ответить
0

[Автор]
Rough #
Ориентировочно 2-3 статьи в неделю.
Ответить
0
bitterman #
Извиняюсь, а сколько места в результирующем бинаре занимает эта библиотека? Свои функции-коллбеки для результатов дребезга - это прекрасно (правда), но всегда за удобство чем-то расплачиваешься
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Металлоискатель MD3010II Discovery V8
вверх