STM32F4 Discovery del 1 - Touch knappar (3 / 4 steg)
Steg 3: Writting ett program buttons.c
buttons.c
Buttons() kallas i main innan oändlig loop! Använder GUI_Exec() får vistas i funktionen buttons(). Om du vill skapa fler fönster bara lägga till en global flagga.
#include < stdio.h >
#include "buttons.h"
#include "stm32f429i_discovery.h"
#include "WM.h"
/*********************************************************************
*
* _cbMainWindow
*
* Callback funktion av välkomstdialogrutan
*/
statisk void _cbMainWindow(WM_MESSAGE * pMsg)
{
WM_HWIN hItem; Universal handler för alla widgets
int Id; ID för källkod widget
int NCode = pMsg -> Data.v; Koden för meddelande
WM_HWIN hDlg = pMsg -> hWin;
Växla (pMsg -> MsgId)
{
fall WM_INIT_DIALOG:
hItem = WM_GetDialogItem (hDlg, ID_W1_BUTTON0); LIGHT ON-knappen
BUTTON_SetFont (hItem, GUI_FONT_24_ASCII); SET-knappen textstorlek
hItem = WM_GetDialogItem (hDlg, ID_W1_BUTTON1); LJUS av-knapp
BUTTON_SetFont (hItem, GUI_FONT_24_ASCII); SET-knappen textstorlek
FRAMEWIN_SetTitleHeight (hDlg, 30); Ange titel bar höjd
FRAMEWIN_SetTextColor (hDlg, GUI_DARKRED); Ange framewin textfärg
FRAMEWIN_SetFont (hDlg, GUI_FONT_20_ASCII); Ange framewin textstorlek
FRAMEWIN_SetTextAlign (hDlg, GUI_TA_CENTER); Ange framewin text justeras
WM_SetDesktopColor(GUI_DARKRED); bakgrundsfärgen
bryta;
fall WM_NOTIFY_PARENT:
ID = WM_GetId (pMsg -> hWinSrc);
Switch (Id)
{
fall ID_W1_BUTTON0:
Switch (NCode)
{
fall WM_NOTIFICATION_RELEASED: //button släppt reaktion
{
BSP_LED_On(LED3); lysdioderna på
BSP_LED_On(LED4);
}
bryta;
}
bryta;
fall ID_W1_BUTTON1:
Switch (NCode)
{
fall WM_NOTIFICATION_RELEASED: //button släppt reaktion
{
BSP_LED_Off(LED3); lysdioder av
BSP_LED_Off(LED4);
}
bryta;
}
bryta;
}
bryta;
standard:
WM_DefaultProc(pMsg);
bryta;
}
}
/*********************************************************************
*
* WelcomeButtons();
*
* Huvudsaklig fönster av denna fil
*/
void Buttons(void)
{
BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX); skapa knappar med standard huden
FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX); skapa framewin med standard huden
GUI_CreateDialogBox (_MainWindow, GUI_COUNTOF(_MainWindow), & _cbMainWindow, WM_HBKWIN, 0, 0);
samtidigt (1)
{
GUI_Exec();
}
}