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 и отдельная библиотека для использования в других проектах. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.