STM32F4. Урок 3 - цифрові виходи

Ця бібліотека використовується для управління цифровими виходами мікроконтролера. Усі використовувані виходи повинні бути оголошені у файлі "stm32_ub_dig_out.h" і присвоєні відповідні значення налаштування порту в файлі "stm32_ub_dig_out.c". При ініціалізації кожному виходу може бути присвоєно значення "0" або "1".
В прикладі показано управління чотирма виходами: 
PB2, PB7, PC6, PC13.

Вимоги:

  • Підключувані модулі CooCox-IDE : GPIO.
  • Підтримувані бібліотеки: відсутні.

Перерахування:

 typedef enum 
{
  DOUT_PB2 = 0,  // PB2-Pin
  DOUT_PB7 = 1,  // PB7-Pin
  DOUT_PC6 = 2,  // PC6-Pin
  DOUT_PC13 = 3  // PC13-Pin
}DOUT_NAME_t;

Функції:

void UB_DigOut_Init(void);                               // Ініціалізація цифрових виходів
void UB_DigOut_Lo(DOUT_NAME_t dig_pin);                  // Встановити вихід у значення "0"
void UB_DigOut_Hi(DOUT_NAME_t dig_pin);                  // Встановити вихід у значення "1"
void UB_DigOut_Toggle(DOUT_NAME_t dig_pin);              // Переключити значення виходу
void UB_DigOut_Pin(DOUT_NAME_t dig_pin,BitAction wert);  // Встановити задане значення виходу

Приклад використання:

//--------------------------------------------------------------
// File     : main.c
// Datum    : 16.02.2013
// Version  : 1.0
// Author    : 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_out.h"

void Delay(volatile uint32_t nCount){
  while(nCount--) {
  }
}

int main(void)
{
  SystemInit(); // Ініціалізація налаштувань кварца

  UB_DigOut_Init(); // ініціалізація всіх цифрових виходів

  while(1)
  {
    Delay(5000000);
    UB_DigOut_Toggle(DOUT_PB2);
    Delay(5000000);
    UB_DigOut_Toggle(DOUT_PB7);
    Delay(5000000);
    UB_DigOut_Toggle(DOUT_PC6);
    Delay(5000000);
    UB_DigOut_Toggle(DOUT_PC13);
  }
}

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

GPIO-піни PB2, PB7, PC6, PC13 визначаються як вихід (в бібліотеці)
Значення рівнів виходів перемикається циклічно.

Бібліотека, використана в прикладі: stm32_ub_dig_out.

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

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

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

Top