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 та окрема бібліотека для використання в інших проектах. Автор оригіналу статті просить задавати питання на його сайті німецькою або англійською мовами.
Прикріплені файли:
- ub_stm32f4_digout_v102_rus.rar (3 Кб)
- Demo_03_DigOut_rus.rar (143 Кб)