STM32-F746NG-DISCO Project.

Dependencies:   BSP_DISCO_F746NG

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?

UserRevisionLine numberNew 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 }