
STM32-F746NG-DISCO Project.
Dependencies: BSP_DISCO_F746NG
main.cpp@0:6b60860a3ffe, 2020-01-07 (annotated)
- Committer:
- chri721u
- Date:
- Tue Jan 07 13:10:58 2020 +0000
- Revision:
- 0:6b60860a3ffe
- Child:
- 1:0c13955ae7ae
BASIC ARDUINO;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chri721u | 0:6b60860a3ffe | 1 | #include "mbed.h" |
chri721u | 0:6b60860a3ffe | 2 | #include "SPI_TFT.h" |
chri721u | 0:6b60860a3ffe | 3 | #include "stm32746g_discovery_lcd.h" |
chri721u | 0:6b60860a3ffe | 4 | |
chri721u | 0:6b60860a3ffe | 5 | /* |
chri721u | 0:6b60860a3ffe | 6 | Author: Christian Andresen |
chri721u | 0:6b60860a3ffe | 7 | Date: 07-01-2020 |
chri721u | 0:6b60860a3ffe | 8 | Brief: Basic arduino project involving sensors (Touch), digital output (Buzzer), and onboard LCD Screen. |
chri721u | 0:6b60860a3ffe | 9 | |
chri721u | 0:6b60860a3ffe | 10 | */ |
chri721u | 0:6b60860a3ffe | 11 | // D2-D4: DigitalIN, D5-D8: DigitalOut |
chri721u | 0:6b60860a3ffe | 12 | DigitalIn button(D2); |
chri721u | 0:6b60860a3ffe | 13 | DigitalIn touch(D3); |
chri721u | 0:6b60860a3ffe | 14 | DigitalOut led(D5); |
chri721u | 0:6b60860a3ffe | 15 | DigitalOut buzzer(D6); |
chri721u | 0:6b60860a3ffe | 16 | |
chri721u | 0:6b60860a3ffe | 17 | void bluescreen(); |
chri721u | 0:6b60860a3ffe | 18 | int button_count; |
chri721u | 0:6b60860a3ffe | 19 | int touch_count; |
chri721u | 0:6b60860a3ffe | 20 | |
chri721u | 0:6b60860a3ffe | 21 | // Main part of the program |
chri721u | 0:6b60860a3ffe | 22 | int main() |
chri721u | 0:6b60860a3ffe | 23 | { |
chri721u | 0:6b60860a3ffe | 24 | button_count = 0; |
chri721u | 0:6b60860a3ffe | 25 | touch_count = 0; |
chri721u | 0:6b60860a3ffe | 26 | |
chri721u | 0:6b60860a3ffe | 27 | // Boot up LCD screen |
chri721u | 0:6b60860a3ffe | 28 | BSP_LCD_Init(); |
chri721u | 0:6b60860a3ffe | 29 | BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); |
chri721u | 0:6b60860a3ffe | 30 | BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); |
chri721u | 0:6b60860a3ffe | 31 | // Clear the screen, add black background and red text |
chri721u | 0:6b60860a3ffe | 32 | BSP_LCD_Clear(LCD_COLOR_BLACK); |
chri721u | 0:6b60860a3ffe | 33 | BSP_LCD_SetBackColor(LCD_COLOR_BLACK); |
chri721u | 0:6b60860a3ffe | 34 | BSP_LCD_SetTextColor(LCD_COLOR_RED); |
chri721u | 0:6b60860a3ffe | 35 | // Bootup Message |
chri721u | 0:6b60860a3ffe | 36 | BSP_LCD_DisplayStringAt(0, 130, (uint8_t *) "SYSTEM BOOTING", CENTER_MODE); |
chri721u | 0:6b60860a3ffe | 37 | HAL_Delay(10000); |
chri721u | 0:6b60860a3ffe | 38 | // Change LCD Screen |
chri721u | 0:6b60860a3ffe | 39 | BSP_LCD_Clear(LCD_COLOR_BLACK); |
chri721u | 0:6b60860a3ffe | 40 | //Message On Screen |
chri721u | 0:6b60860a3ffe | 41 | BSP_LCD_DisplayStringAt(0, 50, (uint8_t *) "HELLDROP STUDIO SOFTWARE", CENTER_MODE); |
chri721u | 0:6b60860a3ffe | 42 | //(uint8_t *)buffer |
chri721u | 0:6b60860a3ffe | 43 | BSP_LCD_DisplayStringAt(0, 100, (uint8_t *)"BUTTON COUNT: %d" + button_count, CENTER_MODE); |
chri721u | 0:6b60860a3ffe | 44 | BSP_LCD_DisplayStringAt(0, 150, (uint8_t *)"Touch count: %d" + touch_count, CENTER_MODE); |
chri721u | 0:6b60860a3ffe | 45 | |
chri721u | 0:6b60860a3ffe | 46 | // While device is on, do.. |
chri721u | 0:6b60860a3ffe | 47 | while(1) { |
chri721u | 0:6b60860a3ffe | 48 | // If the button is pressed, do.. |
chri721u | 0:6b60860a3ffe | 49 | if(button) { |
chri721u | 0:6b60860a3ffe | 50 | led = 1; // LED is ON |
chri721u | 0:6b60860a3ffe | 51 | buzzer = 1; |
chri721u | 0:6b60860a3ffe | 52 | button_count++; |
chri721u | 0:6b60860a3ffe | 53 | } |
chri721u | 0:6b60860a3ffe | 54 | // Else if Touch Sensor is touched, do.. |
chri721u | 0:6b60860a3ffe | 55 | else if(touch) { |
chri721u | 0:6b60860a3ffe | 56 | led = 1; |
chri721u | 0:6b60860a3ffe | 57 | touch_count++; |
chri721u | 0:6b60860a3ffe | 58 | } |
chri721u | 0:6b60860a3ffe | 59 | // Else, turn off LED |
chri721u | 0:6b60860a3ffe | 60 | else { |
chri721u | 0:6b60860a3ffe | 61 | led = 0; |
chri721u | 0:6b60860a3ffe | 62 | buzzer = 0; |
chri721u | 0:6b60860a3ffe | 63 | } |
chri721u | 0:6b60860a3ffe | 64 | } |
chri721u | 0:6b60860a3ffe | 65 | } |
chri721u | 0:6b60860a3ffe | 66 | |
chri721u | 0:6b60860a3ffe | 67 | void bluescreen() |
chri721u | 0:6b60860a3ffe | 68 | { |
chri721u | 0:6b60860a3ffe | 69 | HAL_Delay(25000); |
chri721u | 0:6b60860a3ffe | 70 | //BLUE SCREEN OF DEATH |
chri721u | 0:6b60860a3ffe | 71 | BSP_LCD_Clear(LCD_COLOR_BLUE); |
chri721u | 0:6b60860a3ffe | 72 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
chri721u | 0:6b60860a3ffe | 73 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
chri721u | 0:6b60860a3ffe | 74 | BSP_LCD_DisplayStringAt(0, 50, (uint8_t *) ":(", CENTER_MODE); |
chri721u | 0:6b60860a3ffe | 75 | BSP_LCD_DisplayStringAt(0, 80, (uint8_t *) "This device has encountered", CENTER_MODE); |
chri721u | 0:6b60860a3ffe | 76 | BSP_LCD_DisplayStringAt(0, 110, (uint8_t *) "a fatal error.", CENTER_MODE); |
chri721u | 0:6b60860a3ffe | 77 | BSP_LCD_DisplayStringAt(0, 140, (uint8_t *) "Please Reboot.", CENTER_MODE); |
chri721u | 0:6b60860a3ffe | 78 | BSP_LCD_DisplayStringAt(0, 170, (uint8_t *) "HAL Error", CENTER_MODE); |
chri721u | 0:6b60860a3ffe | 79 | } |
chri721u | 0:6b60860a3ffe | 80 | |
chri721u | 0:6b60860a3ffe | 81 | void counter() |
chri721u | 0:6b60860a3ffe | 82 | { |
chri721u | 0:6b60860a3ffe | 83 | |
chri721u | 0:6b60860a3ffe | 84 | } |