F746NG Test All Functions
Dependencies: TS_DISCO_F746NG LCD_DISCO_F746NG BSP_DISCO_F746NG BUTTON_GROUP Arduino
main.cpp@10:4fef0d14dc70, 2020-12-29 (annotated)
- Committer:
- MaxScorda
- Date:
- Tue Dec 29 18:04:23 2020 +0000
- Revision:
- 10:4fef0d14dc70
- Parent:
- 7:f654d2b1f08b
Publish
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MaxScorda | 6:ba00a5cd9466 | 1 | // os.mbed.com/teams/ST/code/BSP_DISCO_F746NG/docs/tip/stm32746g__discovery__lcd_8c.html |
MaxScorda | 7:f654d2b1f08b | 2 | // https://os.mbed.com/handbook/Socket |
sunsmile2015 | 0:f40a402e1725 | 3 | #include "mbed.h" |
MaxScorda | 7:f654d2b1f08b | 4 | #include <string> |
MaxScorda | 7:f654d2b1f08b | 5 | #include <ctype.h> |
sunsmile2015 | 0:f40a402e1725 | 6 | #include "EthernetInterface.h" |
MaxScorda | 2:65480fe798bf | 7 | |
MaxScorda | 7:f654d2b1f08b | 8 | |
MaxScorda | 1:3fca41f3ed30 | 9 | #include "stm32746g_discovery_lcd.h" |
MaxScorda | 1:3fca41f3ed30 | 10 | #include "stm32746g_discovery_ts.h" |
MaxScorda | 1:3fca41f3ed30 | 11 | |
MaxScorda | 3:e7e663758e6d | 12 | #include "button_group.hpp" |
MaxScorda | 7:f654d2b1f08b | 13 | #include "Arduino.h" |
MaxScorda | 3:e7e663758e6d | 14 | using namespace ButGrp; |
MaxScorda | 3:e7e663758e6d | 15 | TS_DISCO_F746NG ts_; |
MaxScorda | 3:e7e663758e6d | 16 | LCD_DISCO_F746NG BSP_LCD_; |
MaxScorda | 2:65480fe798bf | 17 | |
MaxScorda | 7:f654d2b1f08b | 18 | Ticker GestioneOutput; |
MaxScorda | 7:f654d2b1f08b | 19 | |
MaxScorda | 7:f654d2b1f08b | 20 | //sensors |
MaxScorda | 7:f654d2b1f08b | 21 | AnalogIn adc_temp(ADC_TEMP); |
MaxScorda | 7:f654d2b1f08b | 22 | AnalogIn adc_vref(ADC_VREF); |
MaxScorda | 7:f654d2b1f08b | 23 | #if defined(TARGET_DISCO_F051R8) || defined(TARGET_NUCLEO_F030R8) || defined(TARGET_NUCLEO_F031K6) || defined(TARGET_NUCLEO_F042K6) || defined(TARGET_NUCLEO_F070RB) || defined(TARGET_NUCLEO_F072RB) || defined(TARGET_NUCLEO_F091RC) || defined(TARGET_NUCLEO_F207ZG) || defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F303K8) || defined(TARGET_DISCO_F303VC) || defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F303ZE) || defined(TARGET_DISCO_F334C8) || defined(TARGET_NUCLEO_F334R8) || defined(TARGET_MTS_DRAGONFLY_F411RE) || defined(TARGET_MTS_MDOT_F405RG) || defined(TARGET_MTS_MDOT_F411RE) || defined(TARGET_DISCO_F401VC) || defined(TARGET_NUCLEO_F401RE) || defined(TARGET_ARCH_MAX) || defined(TARGET_DISCO_F407VG) || defined(TARGET_NUCLEO_F410RB) || defined(TARGET_ELMO_F411RE) || defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F412ZG) || defined(TARGET_DISCO_F413ZH) || defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F429ZI) || defined(TARGET_NUCLEO_F439ZI) || defined(TARGET_B96B_F446VE) || defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F446ZE) || defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG) || defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_F756ZG) || defined(TARGET_NUCLEO_F767ZI) || defined(TARGET_DISCO_F769NI) || defined(TARGET_DISCO_L072CZ_LRWAN1) || defined(TARGET_NUCLEO_L432KC) || defined(TARGET_DISCO_L476VG) || defined(TARGET_NUCLEO_L476RG) || defined(TARGET_NUCLEO_L486RG) |
MaxScorda | 7:f654d2b1f08b | 24 | AnalogIn adc_vbat(ADC_VBAT); // Warning: Not available on all devices |
MaxScorda | 7:f654d2b1f08b | 25 | #endif |
MaxScorda | 7:f654d2b1f08b | 26 | |
MaxScorda | 6:ba00a5cd9466 | 27 | // my vars |
MaxScorda | 6:ba00a5cd9466 | 28 | const int DimX=BSP_LCD_GetXSize()-1; |
MaxScorda | 6:ba00a5cd9466 | 29 | const int DimY=BSP_LCD_GetYSize()-1; |
MaxScorda | 6:ba00a5cd9466 | 30 | #define MAXMENU 3 |
MaxScorda | 6:ba00a5cd9466 | 31 | int nummenu=0; |
MaxScorda | 7:f654d2b1f08b | 32 | char str[128]; |
MaxScorda | 7:f654d2b1f08b | 33 | #define IP "192.168.1.177" |
MaxScorda | 1:3fca41f3ed30 | 34 | #define GATEWAY "192.168.1.1" |
MaxScorda | 1:3fca41f3ed30 | 35 | #define MASK "255.255.255.0" |
MaxScorda | 7:f654d2b1f08b | 36 | #define PORTA 29999 |
sunsmile2015 | 0:f40a402e1725 | 37 | |
MaxScorda | 3:e7e663758e6d | 38 | |
sunsmile2015 | 0:f40a402e1725 | 39 | // Network interface |
MaxScorda | 7:f654d2b1f08b | 40 | //se li metto qui non sgancia ma blocca ciclo |
MaxScorda | 7:f654d2b1f08b | 41 | TCPSocket client; |
MaxScorda | 7:f654d2b1f08b | 42 | SocketAddress client_addr; |
MaxScorda | 7:f654d2b1f08b | 43 | // |
sunsmile2015 | 0:f40a402e1725 | 44 | |
MaxScorda | 7:f654d2b1f08b | 45 | |
MaxScorda | 7:f654d2b1f08b | 46 | //external |
MaxScorda | 1:3fca41f3ed30 | 47 | DigitalOut led1(LED1); |
MaxScorda | 1:3fca41f3ed30 | 48 | InterruptIn button(USER_BUTTON); |
MaxScorda | 3:e7e663758e6d | 49 | |
MaxScorda | 3:e7e663758e6d | 50 | // Setting of button group |
MaxScorda | 6:ba00a5cd9466 | 51 | Button avanti(BSP_LCD_, ts_, DimX-37, 50, 38, 170, LCD_COLOR_BLUE, LCD_COLOR_BLACK, ">>", Font12); |
MaxScorda | 6:ba00a5cd9466 | 52 | Button indietro(BSP_LCD_, ts_, 0, 50, 38, 170, LCD_COLOR_BLUE, LCD_COLOR_BLACK, "<<", Font12); |
MaxScorda | 5:19f1743cecb1 | 53 | |
MaxScorda | 3:e7e663758e6d | 54 | |
MaxScorda | 3:e7e663758e6d | 55 | //Touch |
MaxScorda | 3:e7e663758e6d | 56 | # define NUMLAYER 2 |
MaxScorda | 3:e7e663758e6d | 57 | TS_StateTypeDef TS_State; |
MaxScorda | 3:e7e663758e6d | 58 | uint8_t status; |
MaxScorda | 3:e7e663758e6d | 59 | |
MaxScorda | 2:65480fe798bf | 60 | #include "Functions.h" |
MaxScorda | 7:f654d2b1f08b | 61 | #include "ProgFunctions.h" |
MaxScorda | 1:3fca41f3ed30 | 62 | |
MaxScorda | 1:3fca41f3ed30 | 63 | int main() |
MaxScorda | 1:3fca41f3ed30 | 64 | { |
MaxScorda | 3:e7e663758e6d | 65 | //Tasto |
MaxScorda | 3:e7e663758e6d | 66 | button.rise(&PressButton); |
MaxScorda | 7:f654d2b1f08b | 67 | //timer |
MaxScorda | 7:f654d2b1f08b | 68 | StartArduinoTimer(); |
MaxScorda | 7:f654d2b1f08b | 69 | //Ticker |
MaxScorda | 7:f654d2b1f08b | 70 | GestioneOutput.attach(&UsciteVideo,0.1); |
MaxScorda | 1:3fca41f3ed30 | 71 | |
MaxScorda | 5:19f1743cecb1 | 72 | // DISPLAY |
MaxScorda | 1:3fca41f3ed30 | 73 | BSP_LCD_Init(); |
MaxScorda | 3:e7e663758e6d | 74 | BSP_LCD_DisplayOn(); |
MaxScorda | 3:e7e663758e6d | 75 | /* Initialize the LCD Layers */ |
MaxScorda | 3:e7e663758e6d | 76 | BSP_LCD_LayerRgb565Init(0, LCD_FB_START_ADDRESS); |
MaxScorda | 3:e7e663758e6d | 77 | BSP_LCD_LayerRgb565Init(1, LCD_FB_START_ADDRESS+(BSP_LCD_GetXSize()*BSP_LCD_GetYSize()*NUMLAYER)); //Reserve memory art SRAM acc. resolution and color format |
MaxScorda | 6:ba00a5cd9466 | 78 | |
MaxScorda | 6:ba00a5cd9466 | 79 | for (int idx = 0; idx < NUMLAYER; idx++) { |
MaxScorda | 6:ba00a5cd9466 | 80 | BSP_LCD_SetTransparency (idx, 255); |
MaxScorda | 6:ba00a5cd9466 | 81 | SetLayer( idx); |
MaxScorda | 6:ba00a5cd9466 | 82 | // BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); |
MaxScorda | 6:ba00a5cd9466 | 83 | // BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); |
MaxScorda | 6:ba00a5cd9466 | 84 | BSP_LCD_Clear(LCD_COLOR_BLACK); |
MaxScorda | 6:ba00a5cd9466 | 85 | BSP_LCD_SetBackColor(LCD_COLOR_BLACK); |
MaxScorda | 6:ba00a5cd9466 | 86 | } |
MaxScorda | 3:e7e663758e6d | 87 | SetLayer( 0); |
MaxScorda | 6:ba00a5cd9466 | 88 | |
MaxScorda | 6:ba00a5cd9466 | 89 | //frames |
MaxScorda | 4:0ce191d3f0ce | 90 | BSP_LCD_SetTextColor(LCD_COLOR_YELLOW); |
MaxScorda | 4:0ce191d3f0ce | 91 | BSP_LCD_DrawRect(0, 0, DimX/3, 40); |
MaxScorda | 4:0ce191d3f0ce | 92 | BSP_LCD_DrawRect(DimX/3+5, 0, ((DimX*2)/3)-5, 40); |
MaxScorda | 4:0ce191d3f0ce | 93 | BSP_LCD_DrawRect(40, 45, DimX-80, DimY-45-45); |
MaxScorda | 4:0ce191d3f0ce | 94 | BSP_LCD_DrawRect(0, DimY-40, DimX, 40); |
MaxScorda | 3:e7e663758e6d | 95 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
MaxScorda | 5:19f1743cecb1 | 96 | BSP_LCD_.SetFont(&Font12); |
MaxScorda | 6:ba00a5cd9466 | 97 | BSP_LCD_DisplayStringAt(5, 3, (uint8_t *)"Test All 0.2 ", LEFT_MODE); |
MaxScorda | 6:ba00a5cd9466 | 98 | BSP_LCD_DisplayStringAt(5, 23, (uint8_t *)"Max Scordamaglia 2020", LEFT_MODE); |
MaxScorda | 6:ba00a5cd9466 | 99 | BSP_LCD_.SetFont(&Font24); |
MaxScorda | 6:ba00a5cd9466 | 100 | BSP_LCD_SetTextColor(LCD_COLOR_YELLOW); |
MaxScorda | 6:ba00a5cd9466 | 101 | BSP_LCD_DisplayStringAt(DimX/3+10, 10, (uint8_t *) "Dati Generali", LEFT_MODE); |
MaxScorda | 1:3fca41f3ed30 | 102 | |
MaxScorda | 3:e7e663758e6d | 103 | // touch |
MaxScorda | 3:e7e663758e6d | 104 | status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); |
MaxScorda | 6:ba00a5cd9466 | 105 | BSP_LCD_.SetFont(&Font12); |
MaxScorda | 6:ba00a5cd9466 | 106 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
MaxScorda | 3:e7e663758e6d | 107 | if (status != TS_OK) { |
MaxScorda | 5:19f1743cecb1 | 108 | BSP_LCD_DisplayStringAt(300, LINE(4), (uint8_t *)"TOUCHSCREEN INIT FAIL", LEFT_MODE); |
MaxScorda | 3:e7e663758e6d | 109 | } else { |
MaxScorda | 5:19f1743cecb1 | 110 | BSP_LCD_DisplayStringAt(300, LINE(4), (uint8_t *)"TOUCHSCREEN INIT OK", LEFT_MODE); |
MaxScorda | 3:e7e663758e6d | 111 | } |
MaxScorda | 5:19f1743cecb1 | 112 | Button::SetMultiTouch(false); |
MaxScorda | 1:3fca41f3ed30 | 113 | |
MaxScorda | 6:ba00a5cd9466 | 114 | // Buttons |
MaxScorda | 6:ba00a5cd9466 | 115 | avanti.Draw(LCD_COLOR_BLUE, LCD_COLOR_YELLOW); |
MaxScorda | 6:ba00a5cd9466 | 116 | indietro.Draw(LCD_COLOR_BLUE, LCD_COLOR_YELLOW); |
MaxScorda | 6:ba00a5cd9466 | 117 | // multiTouch.Draw(0, LCD_COLOR_DARKBLUE); |
MaxScorda | 3:e7e663758e6d | 118 | |
MaxScorda | 3:e7e663758e6d | 119 | // ethernet interface |
MaxScorda | 7:f654d2b1f08b | 120 | EthernetInterface eth; |
MaxScorda | 7:f654d2b1f08b | 121 | eth.set_network("192.168.1.177","255.255.255.0","192.168.1.1"); |
MaxScorda | 7:f654d2b1f08b | 122 | eth.connect(); |
sunsmile2015 | 0:f40a402e1725 | 123 | |
MaxScorda | 7:f654d2b1f08b | 124 | //Server |
MaxScorda | 7:f654d2b1f08b | 125 | TCPServer srv(ð); |
MaxScorda | 7:f654d2b1f08b | 126 | srv.set_blocking(false); |
MaxScorda | 7:f654d2b1f08b | 127 | srv.bind(29999); |
MaxScorda | 7:f654d2b1f08b | 128 | srv.listen(); |
sunsmile2015 | 0:f40a402e1725 | 129 | |
MaxScorda | 7:f654d2b1f08b | 130 | if (nummenu==0) { |
MaxScorda | 7:f654d2b1f08b | 131 | sprintf(str,"The Server IP address is '%s', port %d", eth.get_ip_address(), PORTA); |
MaxScorda | 7:f654d2b1f08b | 132 | BSP_LCD_.SetFont(&Font12); |
MaxScorda | 7:f654d2b1f08b | 133 | BSP_LCD_SetTextColor(LCD_COLOR_MAGENTA); |
MaxScorda | 7:f654d2b1f08b | 134 | BSP_LCD_DisplayStringAt(0, LINE(14), (uint8_t *) str, CENTER_MODE); |
MaxScorda | 7:f654d2b1f08b | 135 | } |
MaxScorda | 1:3fca41f3ed30 | 136 | |
MaxScorda | 1:3fca41f3ed30 | 137 | |
MaxScorda | 6:ba00a5cd9466 | 138 | while(1) { |
MaxScorda | 7:f654d2b1f08b | 139 | FattorizzazioneCiclica(); //1 |
MaxScorda | 7:f654d2b1f08b | 140 | RoutineCiclicaSocket(srv); |
MaxScorda | 1:3fca41f3ed30 | 141 | } |
sunsmile2015 | 0:f40a402e1725 | 142 | } |
MaxScorda | 7:f654d2b1f08b | 143 | |
MaxScorda | 7:f654d2b1f08b | 144 | |
MaxScorda | 7:f654d2b1f08b | 145 |