setup project

This commit is contained in:
Clément Grennerat
2025-08-18 21:34:19 +02:00
commit 6e6abff60c
33 changed files with 4543 additions and 0 deletions
+106
View File
@@ -0,0 +1,106 @@
#ifndef BASIC_5X5_FONT_H
#define BASIC_5X5_FONT_H
#define CHAR_WIDTH 6
#define CHAR_HEIGHT 8
static const unsigned char font[96][6] = {
{0x00,0x00,0x00,0x00,0x00,0x00}, //
{0x5c,0x00,0x00,0x00,0x00,0x00}, // !
{0x06,0x00,0x06,0x00,0x00,0x00}, // "
{0x28,0x7c,0x28,0x7c,0x28,0x00}, // #
{0x5c,0x54,0xfe,0x54,0x74,0x00}, // $
{0x44,0x20,0x10,0x08,0x44,0x00}, // %
{0x28,0x54,0x54,0x20,0x50,0x00}, // &
{0x06,0x00,0x00,0x00,0x00,0x00}, // '
{0x38,0x44,0x00,0x00,0x00,0x00}, // (
{0x44,0x38,0x00,0x00,0x00,0x00}, // )
{0x02,0x07,0x02,0x00,0x00,0x00}, // *
{0x10,0x10,0x7c,0x10,0x10,0x00}, // +
{0xc0,0x00,0x00,0x00,0x00,0x00}, // ,
{0x10,0x10,0x10,0x10,0x10,0x00}, // -
{0x40,0x00,0x00,0x00,0x00,0x00}, // .
{0x60,0x10,0x0c,0x00,0x00,0x00}, // /
{0x7c,0x64,0x54,0x4c,0x7c,0x00}, // 0
{0x48,0x7c,0x40,0x00,0x00,0x00}, // 1
{0x64,0x54,0x54,0x54,0x48,0x00}, // 2
{0x44,0x54,0x54,0x54,0x6c,0x00}, // 3
{0x3c,0x20,0x70,0x20,0x20,0x00}, // 4
{0x5c,0x54,0x54,0x54,0x24,0x00}, // 5
{0x7c,0x54,0x54,0x54,0x74,0x00}, // 6
{0x04,0x04,0x64,0x14,0x0c,0x00}, // 7
{0x7c,0x54,0x54,0x54,0x7c,0x00}, // 8
{0x5c,0x54,0x54,0x54,0x7c,0x00}, // 9
{0x44,0x00,0x00,0x00,0x00,0x00}, // :
{0xc4,0x00,0x00,0x00,0x00,0x00}, // ;
{0x10,0x28,0x44,0x00,0x00,0x00}, // <
{0x28,0x28,0x28,0x28,0x28,0x00}, // =
{0x44,0x28,0x10,0x00,0x00,0x00}, // >
{0x08,0x04,0x54,0x08,0x00,0x00}, // ?
{0x7c,0x44,0x54,0x54,0x5c,0x00}, // @
{0x7c,0x24,0x24,0x24,0x7c,0x00}, // A
{0x7c,0x54,0x54,0x54,0x6c,0x00}, // B
{0x7c,0x44,0x44,0x44,0x44,0x00}, // C
{0x7c,0x44,0x44,0x44,0x38,0x00}, // D
{0x7c,0x54,0x54,0x54,0x44,0x00}, // E
{0x7c,0x14,0x14,0x14,0x04,0x00}, // F
{0x7c,0x44,0x44,0x54,0x74,0x00}, // G
{0x7c,0x10,0x10,0x10,0x7c,0x00}, // H
{0x44,0x44,0x7c,0x44,0x44,0x00}, // I
{0x60,0x40,0x40,0x44,0x7c,0x00}, // J
{0x7c,0x10,0x10,0x28,0x44,0x00}, // K
{0x7c,0x40,0x40,0x40,0x40,0x00}, // L
{0x7c,0x08,0x10,0x08,0x7c,0x00}, // M
{0x7c,0x08,0x10,0x20,0x7c,0x00}, // N
{0x38,0x44,0x44,0x44,0x38,0x00}, // O
{0x7c,0x14,0x14,0x14,0x08,0x00}, // P
{0x3c,0x24,0x64,0x24,0x3c,0x00}, // Q
{0x7c,0x14,0x14,0x14,0x68,0x00}, // R
{0x5c,0x54,0x54,0x54,0x74,0x00}, // S
{0x04,0x04,0x7c,0x04,0x04,0x00}, // T
{0x7c,0x40,0x40,0x40,0x7c,0x00}, // U
{0x0c,0x30,0x40,0x30,0x0c,0x00}, // V
{0x3c,0x40,0x30,0x40,0x3c,0x00}, // W
{0x44,0x28,0x10,0x28,0x44,0x00}, // X
{0x0c,0x10,0x60,0x10,0x0c,0x00}, // Y
{0x44,0x64,0x54,0x4c,0x44,0x00}, // Z
{0x7c,0x44,0x00,0x00,0x00,0x00}, // [
{0x0c,0x10,0x60,0x00,0x00,0x00}, // "\"
{0x44,0x7c,0x00,0x00,0x00,0x00}, // ]
{0x00,0x01,0x00,0x01,0x00,0x00}, // ^
{0x40,0x40,0x40,0x40,0x40,0x40}, // _
{0x00,0x01,0x00,0x00,0x00,0x00}, // `
{0x7c,0x24,0x24,0x24,0x7c,0x00}, // a
{0x7c,0x54,0x54,0x54,0x6c,0x00}, // b
{0x7c,0x44,0x44,0x44,0x44,0x00}, // c
{0x7c,0x44,0x44,0x44,0x38,0x00}, // d
{0x7c,0x54,0x54,0x54,0x44,0x00}, // e
{0x7c,0x14,0x14,0x14,0x04,0x00}, // f
{0x7c,0x44,0x44,0x54,0x74,0x00}, // g
{0x7c,0x10,0x10,0x10,0x7c,0x00}, // h
{0x44,0x44,0x7c,0x44,0x44,0x00}, // i
{0x60,0x40,0x40,0x44,0x7c,0x00}, // j
{0x7c,0x10,0x10,0x28,0x44,0x00}, // k
{0x7c,0x40,0x40,0x40,0x40,0x00}, // l
{0x7c,0x08,0x10,0x08,0x7c,0x00}, // m
{0x7c,0x08,0x10,0x20,0x7c,0x00}, // n
{0x38,0x44,0x44,0x44,0x38,0x00}, // o
{0x7c,0x14,0x14,0x14,0x08,0x00}, // p
{0x3c,0x24,0x64,0x24,0x3c,0x00}, // q
{0x7c,0x14,0x14,0x14,0x68,0x00}, // r
{0x5c,0x54,0x54,0x54,0x74,0x00}, // s
{0x04,0x04,0x7c,0x04,0x04,0x00}, // t
{0x7c,0x40,0x40,0x40,0x7c,0x00}, // u
{0x0c,0x30,0x40,0x30,0x0c,0x00}, // v
{0x3c,0x40,0x30,0x40,0x3c,0x00}, // w
{0x44,0x28,0x10,0x28,0x44,0x00}, // x
{0x0c,0x10,0x60,0x10,0x0c,0x00}, // y
{0x44,0x64,0x54,0x4c,0x44,0x00}, // z
{0x10,0x7c,0x44,0x00,0x00,0x00}, // {
{0x6c,0x00,0x00,0x00,0x00,0x00}, // |
{0x44,0x7c,0x10,0x00,0x00,0x00}, // }
{0x02,0x01,0x02,0x01,0x00,0x00}, // ~
{0x00,0x00,0x00,0x00,0x00,0x00}
};
#endif
+136
View File
@@ -0,0 +1,136 @@
// Driver afficheur ADA 1983/chip ILI9341 pour Kit STM32L476 IUT1 de Grenoble Dpt GEII
//
// Adaptations L476, et fusion libs : V. GRENNERAT, IUT1 de Grenoble, Dpt GEII
// Correction bug coordonnees X et Y pour Draw_Char et Draw_Text : V. GRENNERAT
// Ajout fonction LCD_Draw_Image_XY : V. GRENNERAT
// Intégration des fonctions de configuration SPI3 et GPIO : V. GRENNERAT
// --------------------------------
// MIT License
//
// Copyright (c) 2017 Matej Artnak
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
/* Includes ------------------------------------------------------------------*/
#ifndef LCD_STM32_DRIVER_H
#define LCD_STM32_DRIVER_H
#include "stm32f1xx.h"
#include "main.h"
#define SPI1_BASEDR_ADR SPI1_BASE //adresse du reg SPI3 DR pour acces 8 bits (defs std permet accès 16bits seulement)
#define LCD_SCREEN_HEIGHT 320
#define LCD_SCREEN_WIDTH 480
//CHIP SELECT PIN AND PORT, STANDARD GPIO
#define LCD_CS_PIN (1<<8)
#define LCD_DC_PIN (1<<11)
#define CMD DCX_GPIO_Port->BRR=DCX_Pin;
#define DATA DCX_GPIO_Port->BSRR=DCX_Pin;
#define TEMPO1MS_80M 4200
//RESET PIN AND PORT, STANDARD GPIO
//Reset n'est pas cable sur aff ADA1983
//#define LCD_RST_PORT GPIOC
//#define LCD_RST_PIN RST_Pin
#define BURST_MAX_SIZE 100 //buffer burst stocké sur pile. Par défaut stackSiZE=256 dans FreeRTOS.
#define BLACK 0x0000
#define NAVY 0x000F
#define DARKGREEN 0x03E0
#define DARKCYAN 0x03EF
#define MAROON 0x7800
#define PURPLE 0x780F
#define OLIVE 0x7BE0
#define LIGHTGREY 0xC618
#define DARKGREY 0x7BEF
#define BLUE 0x001F
#define GREEN 0x07E0
#define CYAN 0x07FF
#define RED 0xF800
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define ORANGE 0xFD20
#define GREENYELLOW 0xAFE5
#define PINK 0xF81F
#define SCREEN_VERTICAL_1 0
#define SCREEN_HORIZONTAL_1 1
#define SCREEN_VERTICAL_2 2
#define SCREEN_HORIZONTAL_2 3
void LCD_SPI_Init(void);
void LCD_SPI_Send(unsigned char SPI_Data);
void LCD_Write_Command(uint8_t Command);
void LCD_Write_Data(uint8_t Data);
void LCD_Set_Address(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2);
//Reset n'est pas cable sur aff ADA1983:
//void LCD_Reset(void);
//void LCD_Enable(void);
void LCD_Set_Rotation(uint8_t Rotation);
// @param Rotation : valeurs= SCREEN_VERTICAL_1, SCREEN_VERTICAL_2, SCREEN_HORIZONTAL_1, SCREEN_HORIZONTAL_2
// Par defaut pour kit L476 IUT1 : SCREEN_HORIZONTAL_1
void LCD_Init(void);
void LCD_Fill_Screen(uint16_t Colour);
// @param Colour : voir #define de quelques couleurs 16 bits standard ci-dessus
void LCD_Draw_Colour(uint16_t Colour);
// @param Colour : voir #define de quelques couleurs 16 bits standard ci-dessus
void LCD_Draw_Pixel(uint16_t X,uint16_t Y,uint16_t Colour);
//@param X : coordonnee x
//@param Y : coordonnee y
//@param Colour : voir #define de quelques couleurs 16 bits standard ci-dessus
void LCD_Draw_Horizontal_Line(uint16_t X, uint16_t Y, uint16_t Width, uint16_t Colour);
void LCD_Draw_Vertical_Line(uint16_t X, uint16_t Y, uint16_t Height, uint16_t Colour);
void LCD_Draw_Rectangle(uint16_t X, uint16_t Y, uint16_t Width, uint16_t Height, uint16_t Colour);
void LCD_Draw_Colour_Burst(uint16_t Colour, uint32_t Size);
#endif
/*******************PARTIE ISSUE DE LA LIB ILI9193_GFX.h***************************/
#ifndef LCD_GFX_H
#define LCD_GFX_H
#define HORIZONTAL_IMAGE 0
#define VERTICAL_IMAGE 1
void LCD_Draw_Hollow_Circle(uint16_t X, uint16_t Y, uint16_t Radius, uint16_t Colour);
void LCD_Draw_Filled_Circle(uint16_t X, uint16_t Y, uint16_t Radius, uint16_t Colour);
void LCD_Draw_Hollow_Rectangle_Coord(uint16_t X0, uint16_t Y0, uint16_t X1, uint16_t Y1, uint16_t Colour);
void LCD_Draw_Filled_Rectangle_Coord(uint16_t X0, uint16_t Y0, uint16_t X1, uint16_t Y1, uint16_t Colour);
void LCD_Draw_Char(char Character, uint16_t X, uint16_t Y, uint16_t Colour, uint16_t Size, uint16_t Background_Colour);
void LCD_Draw_Text(const char* Text, uint16_t X, uint16_t Y, uint16_t Colour, uint16_t Size, uint16_t Background_Colour);
/*Draws a character (fonts imported from fonts.h) at X,Y location with specified font colour, size and Background colour*/
void LCD_Draw_Filled_Rectangle_Size_Text(uint16_t X0, uint16_t Y0, uint16_t Size_X, uint16_t Size_Y, uint16_t Colour);
void LCD_Draw_Image_XY(const char* Image_Array, uint16_t X, uint16_t Y, uint16_t Width, uint16_t Height);
/*Dessine une image 65K couleurs (2Bytes / Pixel) dans une zone de l'ecran, aux coordonnées X et Y*/
//CONVERTISSEUR: http://www.digole.com/tools/PicturetoC_Hex_converter.php
void LCD_Draw_Image_Full(const char* Image_Array, uint8_t Orientation);
#endif
+51
View File
@@ -0,0 +1,51 @@
/*
* LogoIUT.h
*
* Created on: 27 juin 2018
* Author: V. GRENNERAT
*/
const char logoIUT[60*41*2] = {0x7b,0xef,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0xe7,0x1c,0xff,0xff,0xff,0xff,0xce,0x59,0x73,0x6e,0x73,0x6e,0x8c,0x71,0xff,0xff,0xff,0xff,0xc6,0x38,0x73,0x6e,0x73,0x6e,0x8c,0x51,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7b,0xef,0x73,0x6e,0x73,0x6e,0xd6,0x9a,0xd6,0x9a,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0x73,0x6e,0xbd,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0x0d,0xe1,0x46,0xe1,0x46,0xe1,0x46,0xe1,0x46,0xe1,0x66,0xff,0x1c
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xbd,0xd7,0x52,0xaa,0x52,0xaa,0x73,0xae,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x63,0x2c,0x52,0xaa,0x52,0xaa,0xce,0x59,0xce,0x59,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xb5,0x76,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x4a,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xbd,0xd7,0x52,0xaa,0x52,0xaa,0x73,0xae,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x63,0x2c,0x52,0xaa,0x52,0xaa,0xce,0x59,0xd6,0x9a,0x6b,0x4d,0x6b,0x4d,0x6b,0x4d,0x6b,0x4d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x6b,0x2d,0x6b,0x4d,0x6b,0x4d,0x6b,0x4d,0xbd,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0x2d,0xe1,0x87,0xe1,0x67,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xbd,0xd7,0x52,0xaa,0x52,0xaa,0x73,0xae,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x63,0x2c,0x52,0xaa,0x52,0xaa,0xce,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xde,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xbd,0xd7,0x52,0xaa,0x52,0xaa,0x73,0xae,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x63,0x2c,0x52,0xaa,0x52,0xaa,0xce,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xe6,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xbd,0xd7,0x52,0xaa,0x52,0xaa,0x73,0xae,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x63,0x2c,0x52,0xaa,0x52,0xaa,0xce,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xe6,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xbd,0xd7,0x52,0xaa,0x52,0xaa,0x73,0xae,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x63,0x2c,0x52,0xaa,0x52,0xaa,0xce,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xe6,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xbd,0xd7,0x52,0xaa,0x52,0xaa,0x73,0xae,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x63,0x2c,0x52,0xaa,0x52,0xaa,0xce,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xe6,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xbd,0xf7,0x52,0xaa,0x52,0xaa,0x73,0x8e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x63,0x0c,0x52,0xaa,0x52,0xaa,0xce,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xe6,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xce,0x79,0x52,0xaa,0x52,0xaa,0x5a,0xeb,0xef,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x5d,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xde,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xe6,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xf7,0x9e,0x5a,0xeb,0x52,0xaa,0x52,0xaa,0x94,0x72,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xdf,0x8c,0x51,0x52,0xaa,0x52,0xaa,0x63,0x2c,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xe6,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xa5,0x14,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x6b,0x4d,0x94,0xb2,0x94,0xb2,0x6b,0x4d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xad,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xe6,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x52,0xaa,0x52,0xaa,0x7b,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0x84,0x30,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x8c,0x71,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0xe6,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xc6,0x18,0x5a,0xcb,0x5a,0xcb,0x7b,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xbd,0xd7,0x73,0x8e,0x5a,0xcb,0x52,0xaa,0x52,0xaa,0x5a,0xcb,0x73,0x8e,0xbd,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xbe,0x5a,0xcb,0x5a,0xcb,0x5a,0xcb,0xe7,0x1c,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0xe0,0x42,0xe0,0x42,0xe0,0x42,0xfe,0xfb
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xff,0xdf,0xef,0x7d,0xef,0x7d,0xf7,0x9e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x7d,0xde,0xfb,0xde,0xfb,0xef,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x7d,0xef,0x7d,0xef,0x7d,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3c,0xff,0x3c,0xff,0x3c,0xff,0xdf
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x7d,0xff,0xff
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd6,0x9a,0x94,0x92,0xff,0xff
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xf7,0x9e,0x8c,0x71,0xff,0xff,0xbd,0xd7,0xbd,0xd7,0xff,0xff,0x8c,0x71,0xd6,0x9a,0xff,0xdf,0x8c,0x51,0xf7,0xbe,0xde,0xbb,0xa5,0x34,0xff,0xdf,0x84,0x10,0xf7,0x9e,0xe7,0x3c,0x8c,0x51,0xff,0xff,0x94,0xb2,0x7b,0xef,0x7b,0xef,0xde,0xfb,0xef,0x5d,0x7b,0xcf,0x7b,0xef,0x9c,0xf3,0xff,0xdf,0xf7,0xbe,0x8c,0x51,0x73,0x8e,0xad,0x75,0xff,0xff,0xad,0x75,0xd6,0x7a,0xde,0xfb,0x7b,0xef,0x7b,0xcf,0x84,0x10,0xf7,0xbe,0xb5,0x96,0x7b,0xef,0x7b,0xef,0xbd,0xf7
,0x6b,0x2d,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0x52,0xaa,0xde,0xdb,0xff,0xff,0xff,0xff,0xef,0x7d,0x6b,0x6d,0xff,0xff,0xad,0x55,0xad,0x55,0xff,0xff,0x6b,0x6d,0x63,0x2c,0xe7,0x3c,0x6b,0x4d,0xf7,0xbe,0xce,0x79,0x8c,0x71,0xff,0xff,0x94,0x92,0xb5,0xb6,0xa5,0x34,0xa5,0x14,0xff,0xff,0x7b,0xcf,0xc6,0x38,0xde,0xfb,0xff,0xdf,0xe7,0x3c,0x73,0x8e,0xef,0x7d,0x73,0x8e,0xde,0xdb,0xde,0xdb,0x63,0x2c,0xd6,0xba,0xe7,0x1c,0xff,0xff,0x9c,0xb3,0xc6,0x18,0xff,0xdf,0xde,0xfb,0x6b,0x4d,0xf7,0x9e,0xff,0xff,0x9c,0xf3,0xa5,0x34,0xde,0xfb,0xf7,0x9e
,0x9a,0x49,0x91,0xa7,0x91,0xa7,0x91,0xa7,0x91,0xa7,0x91,0xa7,0x91,0xa7,0x91,0xa7,0x91,0xa7,0x91,0xa7,0x91,0xa7,0x91,0xa7,0x91,0xa7,0xe6,0x9a,0xff,0xff,0xff,0xff,0xef,0x7d,0x6b,0x6d,0xff,0xff,0xad,0x35,0xad,0x55,0xff,0xff,0x6b,0x6d,0xa5,0x34,0x7b,0xcf,0x63,0x2c,0xf7,0xbe,0xce,0x79,0x8c,0x71,0xff,0xff,0xd6,0xba,0x73,0x8e,0x6b,0x2d,0xe7,0x3c,0xff,0xff,0x7b,0xcf,0x7b,0xcf,0x84,0x10,0xf7,0xbe,0xe7,0x3c,0x5a,0xeb,0x7b,0xcf,0x6b,0x6d,0xf7,0x9e,0xff,0xff,0xad,0x75,0x73,0x8e,0x8c,0x51,0xff,0xff,0x9c,0xb3,0xc6,0x18,0xff,0xff,0xef,0x7d,0x6b,0x6d,0xff,0xff,0xff,0xff,0x9c,0xf3,0x73,0x8e,0x84,0x10,0xde,0xdb
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0x59,0xff,0xff,0xff,0xff,0xff,0xdf,0x6b,0x6d,0xa5,0x34,0x6b,0x6d,0xd6,0x9a,0xff,0xff,0x6b,0x6d,0xef,0x5d,0x94,0x92,0x5a,0xeb,0xf7,0xbe,0xce,0x79,0x8c,0x71,0xff,0xff,0xff,0xff,0x73,0xae,0x84,0x10,0xff,0xff,0xff,0xff,0x7b,0xcf,0x9c,0xd3,0xad,0x55,0xe7,0x3c,0xe7,0x3c,0x73,0x8e,0xc6,0x38,0x73,0x6e,0xf7,0xbe,0xde,0xfb,0x7b,0xef,0xa5,0x14,0x73,0x6e,0xff,0xff,0x9c,0xb3,0xc6,0x18,0xff,0xff,0xef,0x7d,0x6b,0x6d,0xff,0xff,0xff,0xff,0x9c,0xf3,0x8c,0x51,0xad,0x55,0xd6,0x9a
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe9,0x87,0xe0,0x22,0xfe,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x7d,0xbd,0xf7,0xd6,0xba,0xff,0xff,0xff,0xff,0xc6,0x18,0xf7,0xbe,0xf7,0xbe,0xbd,0xf7,0xff,0xdf,0xef,0x5d,0xd6,0x9a,0xff,0xff,0xff,0xff,0xde,0xdb,0xe6,0xfc,0xff,0xff,0xff,0xff,0xce,0x39,0xbd,0xd7,0xbd,0xd7,0xef,0x5d,0xf7,0xbe,0xc6,0x38,0xff,0xff,0xc6,0x38,0xe7,0x1c,0xff,0xff,0xd6,0x9a,0xbd,0xd7,0xef,0x5d,0xff,0xff,0xd6,0xba,0xe7,0x3c,0xff,0xff,0xf7,0xbe,0xc6,0x18,0xff,0xff,0xff,0xff,0xd6,0xba,0xbd,0xd7,0xbd,0xd7,0xde,0xdb
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe1,0x67,0xff,0x1c,0xe0,0x42,0xfe,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xeb,0x0d,0xf5,0x76,0xfe,0x59,0xf4,0xf4,0xf5,0xb7,0xff,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xf5,0xd7,0xf4,0xb3,0xf5,0x96,0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xeb,0x2d,0xf5,0x14,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf4,0x92,0xf3,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x43,0xeb,0x2d,0xf4,0xd3,0xe0,0x63,0xf4,0x10,0xfe,0x9a,0xe9,0xc8,0xfe,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7d,0xea,0x09,0xe0,0x22,0xe0,0x83,0xe0,0x22,0xea,0x09,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xe0,0xe5,0xeb,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0xec,0xe9,0xe8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xea,0x09,0xf5,0xb7,0xf4,0x10,0xea,0x4a,0xe0,0x22,0xe0,0x83,0xf5,0x76,0xe0,0x22,0xfe,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0x6e,0xe0,0x42,0xf5,0x55,0xff,0xbe,0xfe,0x9a,0xf5,0xd7,0xff,0xff,0xf4,0x31,0xea,0x6a,0xeb,0x0d,0xf5,0xb7,0xff,0x3c,0xea,0xcc,0xe1,0x46,0xea,0x8b,0xfe,0xbb,0xff,0xdf,0xea,0x09,0xeb,0x0d,0xe9,0xa8,0xea,0x29,0xfe,0xdb,0xff,0xff,0xfe,0x7a,0xea,0x6a,0xe1,0x46,0xea,0xec,0xff,0x1c,0xff,0xdf,0xe0,0xe5,0xea,0x09,0xe9,0xc8,0xe9,0xc8,0xf5,0x96,0xff,0xff,0xea,0xec,0xe9,0xe8,0xff,0xff,0xfe,0x9a,0xea,0x6a,0xe1,0x46,0xea,0xec,0xff,0x3d
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xf5,0x76,0xe0,0xa4,0xe0,0x22,0xf4,0x52,0xea,0x09,0xe0,0x83,0xf5,0x76,0xe0,0x22,0xfe,0x7a,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0x46,0xea,0x4a,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0x3c,0xff,0xdf,0xeb,0x2d,0xe0,0x22,0xea,0xab,0xfe,0x9a,0xe9,0xe9,0xe1,0x87,0xf4,0xf4,0xe9,0xa7,0xe1,0x67,0xff,0x9e,0xe0,0xa4,0xe1,0x67,0xf5,0x55,0xe1,0x05,0xea,0xab,0xff,0x9e,0xe0,0xc4,0xe9,0xe8,0xf4,0xb3,0xe1,0x26,0xe9,0xe8,0xff,0xbe,0xe0,0xe5,0xe0,0xa4,0xf4,0xb3,0xea,0x29,0xe0,0x63,0xff,0x1c,0xea,0xec,0xe9,0xe8,0xff,0xbe,0xe1,0x05,0xea,0x29,0xf4,0xf4,0xe1,0x25,0xea,0x6b
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xf4,0xd3,0xf6,0x18,0xfe,0x79,0xea,0x6b,0xe0,0x22,0xe1,0x05,0xff,0x3c,0xea,0xec,0xfe,0x79,0xf4,0x31,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0x46,0xea,0x2a,0xff,0xff,0xff,0xff,0xf5,0xf8,0xe0,0x42,0xf5,0xf8,0xeb,0x2d,0xe1,0x05,0xff,0xdf,0xff,0xbe,0xe0,0x22,0xe1,0x05,0xe9,0xc8,0xe1,0x05,0xe0,0x22,0xff,0x5d,0xe0,0xa4,0xf4,0x51,0xff,0xff,0xea,0xcc,0xe9,0xe8,0xf5,0xf8,0xe0,0x22,0xfe,0x39,0xff,0xff,0xf4,0xd3,0xe0,0x22,0xff,0x1c,0xe0,0xe5,0xeb,0x6e,0xff,0xff,0xfe,0x9a,0xe0,0x22,0xf5,0x76,0xea,0xec,0xe9,0xe8,0xfe,0x7a,0xe0,0x22,0xe1,0x46,0xe9,0xc8,0xe0,0xc4,0xe0,0xe5
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe1,0x05,0xf5,0xd7,0xf5,0x14,0xfe,0xfb,0xf5,0x35,0xea,0x8b,0xf5,0x96,0xf5,0x35,0xeb,0x0d,0xf5,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0x8f,0xe0,0x42,0xf5,0x14,0xff,0x7d,0xf4,0xf4,0xe0,0x22,0xf5,0xf8,0xeb,0x2d,0xe9,0x87,0xff,0xff,0xff,0xdf,0xe0,0xa4,0xea,0x6a,0xf5,0xd7,0xf4,0xb3,0xf5,0xb6,0xff,0x9e,0xe0,0xa4,0xf4,0x72,0xff,0xff,0xea,0xec,0xe9,0xe8,0xfe,0xba,0xe0,0x22,0xf4,0x93,0xff,0xdf,0xeb,0x4e,0xe0,0xa4,0xff,0x7d,0xe0,0xe5,0xea,0x09,0xff,0xbf,0xf4,0xf4,0xe0,0x22,0xfe,0x39,0xea,0xec,0xe9,0xe8,0xff,0x1c,0xe0,0x42,0xeb,0x2d,0xf5,0xd7,0xf4,0x92,0xf6,0x18
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xf5,0x35,0xe9,0xe8,0xe0,0x42,0xe1,0x67,0xf4,0x10,0xfe,0x79,0xe0,0x22,0xe0,0x22,0xe0,0x63,0xff,0x5d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9e,0xea,0x6b,0xe0,0x22,0xe0,0x63,0xe0,0x22,0xe1,0x87,0xff,0x3c,0xeb,0x2d,0xe9,0x87,0xff,0xff,0xff,0xff,0xf4,0xb3,0xe0,0x43,0xe1,0x05,0xe0,0x63,0xf4,0xf4,0xff,0xbe,0xe0,0xa4,0xf4,0x72,0xff,0xff,0xea,0xec,0xe9,0xe8,0xff,0xff,0xeb,0x6e,0xe0,0x42,0xe0,0xc4,0xe0,0x43,0xf4,0xb3,0xff,0xdf,0xe0,0xe5,0xe0,0xa4,0xe0,0xa4,0xe0,0x42,0xea,0xab,0xff,0xff,0xea,0xec,0xe9,0xe8,0xff,0xff,0xeb,0xaf,0xe0,0x43,0xe1,0x05,0xe0,0x63,0xf5,0xf8
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xf5,0x96,0xe0,0xa4,0xe0,0x22,0xe9,0xa8,0xf5,0x55,0xfe,0x18,0xe0,0x22,0xe0,0x22,0xe0,0x42,0xff,0x1c,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x79,0xf5,0x55,0xfe,0x18,0xff,0xbf,0xff,0xff,0xfe,0xdb,0xfe,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xdb,0xf5,0x55,0xfe,0x79,0xff,0xff,0xff,0xff,0xfe,0x39,0xff,0x1c,0xff,0xff,0xfe,0xbb,0xfe,0x7a,0xff,0xff,0xff,0xff,0xfe,0x79,0xf5,0x55,0xfe,0xdb,0xff,0xff,0xff,0xff,0xfe,0x39,0xfe,0xdb,0xf5,0xf8,0xf5,0xf7,0xff,0xdf,0xff,0xff,0xfe,0xbb,0xfe,0x7a,0xff,0xff,0xff,0xff,0xfe,0x7a,0xf5,0x55,0xfe,0xba,0xff,0xff
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xea,0x4a,0xf4,0xf4,0xeb,0xcf,0xf4,0xb3,0xeb,0xaf,0xf5,0x76,0xf3,0xf0,0xe9,0xc8,0xf4,0xd3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x63,0xf5,0x96,0xe0,0x22,0xe0,0x22,0xe1,0x05,0xfe,0xfc,0xeb,0x8f,0xff,0xff,0xeb,0x2d,0xff,0x9e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x59,0xf5,0x76,0xff,0xff,0xff,0xff,0xff,0xff,0xf4,0x72,0xeb,0x4e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xf5,0xb7,0xe0,0xa4,0xe1,0x05,0xfe,0x39,0xeb,0x8f,0xe0,0x22,0xfe,0xfb,0xe0,0x63,0xfe,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xe1,0x05,0xe0,0x22,0xf5,0xb7,0xff,0xff,0xff,0xff,0xeb,0x2d,0xe9,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe9,0xe9,0xf6,0x18,0xf5,0xf8,0xfe,0xba,0xe0,0x42,0xe0,0x22,0xf4,0xd3,0xe0,0x22,0xfe,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0x35,0xe0,0x22,0xe0,0x83,0xea,0x4a,0xff,0xff,0xff,0xff,0xeb,0x2d,0xe9,0x87,0xff,0xff,0xea,0x29,0xea,0x4a,0xe9,0xa7,0xe1,0x26,0xf4,0xf4,0xff,0xff,0xff,0x9e,0xeb,0x4e,0xe1,0x05,0xe1,0x67,0xf5,0x35,0xff,0xff,0xfe,0x18,0xe9,0x87,0xe1,0x05,0xeb,0x0d,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xf3,0xf0,0xf5,0x55,0xfe,0xfb,0xe0,0xa4,0xe0,0x63,0xeb,0x6e,0xe0,0x63,0xfe,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe9,0xc8,0xe1,0x67,0xf4,0x52,0xe0,0x42,0xfe,0xba,0xff,0xff,0xeb,0x2d,0xe9,0x87,0xff,0xff,0xe1,0x46,0xe0,0x83,0xf5,0x14,0xea,0xec,0xe0,0x42,0xfe,0x9a,0xeb,0x8f,0xe0,0xc4,0xf5,0x35,0xeb,0x4e,0xe0,0x42,0xfe,0xdb,0xea,0x2a,0xe9,0xa7,0xf5,0xf7,0xf4,0xd4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xf4,0x92,0xea,0x8b,0xea,0x09,0xf5,0x96,0xf5,0x76,0xf4,0x92,0xf5,0x96,0xff,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x39,0xe0,0x22,0xe9,0xc8,0xeb,0x2d,0xe0,0x22,0xeb,0x4e,0xff,0xff,0xeb,0x2d,0xe9,0x87,0xff,0xff,0xe1,0x46,0xea,0xec,0xff,0xff,0xff,0x3c,0xe0,0x42,0xf4,0xf4,0xe9,0xa8,0xe0,0x83,0xe1,0x66,0xe1,0x25,0xe0,0x22,0xf5,0x96,0xf4,0xb3,0xe0,0x63,0xe0,0xe5,0xf3,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xe0,0xe5,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0x59,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0xcc,0xe0,0x63,0xe9,0x87,0xe9,0x87,0xe1,0x05,0xe0,0x83,0xff,0x5d,0xeb,0x2d,0xe9,0x87,0xff,0xff,0xe1,0x46,0xe1,0x67,0xff,0x7d,0xf5,0x35,0xe0,0x22,0xf5,0xb7,0xea,0x8b,0xe1,0x26,0xf5,0xd7,0xf5,0x96,0xf5,0x55,0xff,0x7d,0xfe,0x59,0xfe,0xfb,0xeb,0x8e,0xe0,0x22,0xfe,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xe1,0x05,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xe0,0x22,0xfe,0x59,0xff,0xff,0xff,0xff,0xfe,0xfc,0xe0,0x63,0xf3,0xd0,0xff,0xff,0xff,0xff,0xfe,0xba,0xe0,0x42,0xf4,0x51,0xeb,0x2d,0xe9,0x87,0xff,0xff,0xe1,0x46,0xe0,0xc4,0xe0,0x63,0xe0,0x22,0xea,0x6b,0xff,0xdf,0xfe,0x9a,0xe0,0xe5,0xe0,0x83,0xe0,0x63,0xeb,0x0d,0xff,0xdf,0xe9,0xa8,0xe0,0xa4,0xe0,0xe4,0xe1,0x67,0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xff,0x1c,0xfe,0xfb,0xfe,0xfb,0xfe,0xfb,0xfe,0xfb,0xfe,0xfb,0xfe,0xfb,0xfe,0xfb,0xfe,0xfb,0xfe,0xfb,0xfe,0xfb,0xfe,0xfb,0xfe,0xfb,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0x7d,0xfe,0x9a,0xff,0x9e,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xfe,0xfb,0xff,0x1c,0xfe,0xdb,0xff,0xff,0xe1,0x46,0xeb,0x0d,0xfe,0x9a,0xfe,0x39,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9e,0xf6,0x18,0xfe,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x79,0xf5,0xf8,0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0x46,0xeb,0x2d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
};
+30
View File
@@ -0,0 +1,30 @@
/*
Copyright 2016 Benjamin Vedder benjamin@vedder.se
This file is part of the VESC firmware.
The VESC firmware is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
The VESC firmware is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CRC_H_
#define CRC_H_
#include <stdint.h>
/*
* Functions
*/
unsigned short crc16(unsigned char *buf, unsigned int len);
#endif /* CRC_H_ */
+115
View File
@@ -0,0 +1,115 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file : main.h
* @brief : Header for main.c file.
* This file contains the common defines of the application.
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_hal.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */
/* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
/* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/
#define DB10_Pin GPIO_PIN_13
#define DB10_GPIO_Port GPIOC
#define DB8_Pin GPIO_PIN_14
#define DB8_GPIO_Port GPIOC
#define DB6_Pin GPIO_PIN_15
#define DB6_GPIO_Port GPIOC
#define DB4_Pin GPIO_PIN_0
#define DB4_GPIO_Port GPIOD
#define DB2_Pin GPIO_PIN_1
#define DB2_GPIO_Port GPIOD
#define DB0_Pin GPIO_PIN_0
#define DB0_GPIO_Port GPIOA
#define DRESET_Pin GPIO_PIN_1
#define DRESET_GPIO_Port GPIOA
#define DTE_Pin GPIO_PIN_2
#define DTE_GPIO_Port GPIOA
#define DCX_Pin GPIO_PIN_3
#define DCX_GPIO_Port GPIOA
#define DB1_Pin GPIO_PIN_0
#define DB1_GPIO_Port GPIOB
#define DB3_Pin GPIO_PIN_1
#define DB3_GPIO_Port GPIOB
#define DB5_Pin GPIO_PIN_2
#define DB5_GPIO_Port GPIOB
#define DB7_Pin GPIO_PIN_10
#define DB7_GPIO_Port GPIOB
#define DB9_Pin GPIO_PIN_11
#define DB9_GPIO_Port GPIOB
#define DB11_Pin GPIO_PIN_12
#define DB11_GPIO_Port GPIOB
#define DB13_Pin GPIO_PIN_13
#define DB13_GPIO_Port GPIOB
#define DB15_Pin GPIO_PIN_14
#define DB15_GPIO_Port GPIOB
#define IM0_Pin GPIO_PIN_15
#define IM0_GPIO_Port GPIOB
#define IM2_Pin GPIO_PIN_8
#define IM2_GPIO_Port GPIOA
#define IM1_Pin GPIO_PIN_9
#define IM1_GPIO_Port GPIOA
#define PB14_Pin GPIO_PIN_10
#define PB14_GPIO_Port GPIOA
#define DRDX_Pin GPIO_PIN_5
#define DRDX_GPIO_Port GPIOB
#define DB12_Pin GPIO_PIN_9
#define DB12_GPIO_Port GPIOB
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
#ifdef __cplusplus
}
#endif
#endif /* __MAIN_H */
+391
View File
@@ -0,0 +1,391 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32f1xx_hal_conf.h
* @brief HAL configuration file.
******************************************************************************
* @attention
*
* Copyright (c) 2017 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F1xx_HAL_CONF_H
#define __STM32F1xx_HAL_CONF_H
#ifdef __cplusplus
extern "C" {
#endif
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* ########################## Module Selection ############################## */
/**
* @brief This is the list of modules to be used in the HAL driver
*/
#define HAL_MODULE_ENABLED
/*#define HAL_ADC_MODULE_ENABLED */
/*#define HAL_CRYP_MODULE_ENABLED */
/*#define HAL_CAN_MODULE_ENABLED */
/*#define HAL_CAN_LEGACY_MODULE_ENABLED */
/*#define HAL_CEC_MODULE_ENABLED */
/*#define HAL_CORTEX_MODULE_ENABLED */
/*#define HAL_CRC_MODULE_ENABLED */
/*#define HAL_DAC_MODULE_ENABLED */
/*#define HAL_DMA_MODULE_ENABLED */
/*#define HAL_ETH_MODULE_ENABLED */
/*#define HAL_FLASH_MODULE_ENABLED */
#define HAL_GPIO_MODULE_ENABLED
/*#define HAL_I2C_MODULE_ENABLED */
/*#define HAL_I2S_MODULE_ENABLED */
/*#define HAL_IRDA_MODULE_ENABLED */
/*#define HAL_IWDG_MODULE_ENABLED */
/*#define HAL_NOR_MODULE_ENABLED */
/*#define HAL_NAND_MODULE_ENABLED */
/*#define HAL_PCCARD_MODULE_ENABLED */
/*#define HAL_PCD_MODULE_ENABLED */
/*#define HAL_HCD_MODULE_ENABLED */
/*#define HAL_PWR_MODULE_ENABLED */
/*#define HAL_RCC_MODULE_ENABLED */
/*#define HAL_RTC_MODULE_ENABLED */
/*#define HAL_SD_MODULE_ENABLED */
/*#define HAL_MMC_MODULE_ENABLED */
/*#define HAL_SDRAM_MODULE_ENABLED */
/*#define HAL_SMARTCARD_MODULE_ENABLED */
#define HAL_SPI_MODULE_ENABLED
/*#define HAL_SRAM_MODULE_ENABLED */
/*#define HAL_TIM_MODULE_ENABLED */
#define HAL_UART_MODULE_ENABLED
/*#define HAL_USART_MODULE_ENABLED */
/*#define HAL_WWDG_MODULE_ENABLED */
#define HAL_CORTEX_MODULE_ENABLED
#define HAL_DMA_MODULE_ENABLED
#define HAL_FLASH_MODULE_ENABLED
#define HAL_EXTI_MODULE_ENABLED
#define HAL_GPIO_MODULE_ENABLED
#define HAL_PWR_MODULE_ENABLED
#define HAL_RCC_MODULE_ENABLED
/* ########################## Oscillator Values adaptation ####################*/
/**
* @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
* This value is used by the RCC HAL module to compute the system frequency
* (when HSE is used as system clock source, directly or through the PLL).
*/
#if !defined (HSE_VALUE)
#define HSE_VALUE 8000000U /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
#if !defined (HSE_STARTUP_TIMEOUT)
#define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */
#endif /* HSE_STARTUP_TIMEOUT */
/**
* @brief Internal High Speed oscillator (HSI) value.
* This value is used by the RCC HAL module to compute the system frequency
* (when HSI is used as system clock source, directly or through the PLL).
*/
#if !defined (HSI_VALUE)
#define HSI_VALUE 8000000U /*!< Value of the Internal oscillator in Hz*/
#endif /* HSI_VALUE */
/**
* @brief Internal Low Speed oscillator (LSI) value.
*/
#if !defined (LSI_VALUE)
#define LSI_VALUE 40000U /*!< LSI Typical Value in Hz */
#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
The real value may vary depending on the variations
in voltage and temperature. */
/**
* @brief External Low Speed oscillator (LSE) value.
* This value is used by the UART, RTC HAL module to compute the system frequency
*/
#if !defined (LSE_VALUE)
#define LSE_VALUE 32768U /*!< Value of the External oscillator in Hz*/
#endif /* LSE_VALUE */
#if !defined (LSE_STARTUP_TIMEOUT)
#define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */
#endif /* LSE_STARTUP_TIMEOUT */
/* Tip: To avoid modifying this file each time you need to use different HSE,
=== you can define the HSE value in your toolchain compiler preprocessor. */
/* ########################### System Configuration ######################### */
/**
* @brief This is the HAL system configuration section
*/
#define VDD_VALUE 3300U /*!< Value of VDD in mv */
#define TICK_INT_PRIORITY 15U /*!< tick interrupt priority (lowest by default) */
#define USE_RTOS 0U
#define PREFETCH_ENABLE 1U
#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */
#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */
#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */
#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */
#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC register callback disabled */
#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */
#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */
#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */
#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */
#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */
#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */
#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */
#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */
#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */
#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */
#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
/* ########################## Assert Selection ############################## */
/**
* @brief Uncomment the line below to expanse the "assert_param" macro in the
* HAL drivers code
*/
/* #define USE_FULL_ASSERT 1U */
/* ################## Ethernet peripheral configuration ##################### */
/* Section 1 : Ethernet peripheral configuration */
/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */
#define MAC_ADDR0 2U
#define MAC_ADDR1 0U
#define MAC_ADDR2 0U
#define MAC_ADDR3 0U
#define MAC_ADDR4 0U
#define MAC_ADDR5 0U
/* Definition of the Ethernet driver buffers size and count */
#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */
#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */
#define ETH_RXBUFNB 8U /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
#define ETH_TXBUFNB 4U /* 4 Tx buffers of size ETH_TX_BUF_SIZE */
/* Section 2: PHY configuration section */
/* DP83848_PHY_ADDRESS Address*/
#define DP83848_PHY_ADDRESS 0x01U
/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
#define PHY_RESET_DELAY 0x000000FFU
/* PHY Configuration delay */
#define PHY_CONFIG_DELAY 0x00000FFFU
#define PHY_READ_TO 0x0000FFFFU
#define PHY_WRITE_TO 0x0000FFFFU
/* Section 3: Common PHY Registers */
#define PHY_BCR ((uint16_t)0x00) /*!< Transceiver Basic Control Register */
#define PHY_BSR ((uint16_t)0x01) /*!< Transceiver Basic Status Register */
#define PHY_RESET ((uint16_t)0x8000) /*!< PHY Reset */
#define PHY_LOOPBACK ((uint16_t)0x4000) /*!< Select loop-back mode */
#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100) /*!< Set the full-duplex mode at 100 Mb/s */
#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000) /*!< Set the half-duplex mode at 100 Mb/s */
#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100) /*!< Set the full-duplex mode at 10 Mb/s */
#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000) /*!< Set the half-duplex mode at 10 Mb/s */
#define PHY_AUTONEGOTIATION ((uint16_t)0x1000) /*!< Enable auto-negotiation function */
#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200) /*!< Restart auto-negotiation function */
#define PHY_POWERDOWN ((uint16_t)0x0800) /*!< Select the power down mode */
#define PHY_ISOLATE ((uint16_t)0x0400) /*!< Isolate PHY from MII */
#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020) /*!< Auto-Negotiation process completed */
#define PHY_LINKED_STATUS ((uint16_t)0x0004) /*!< Valid link established */
#define PHY_JABBER_DETECTION ((uint16_t)0x0002) /*!< Jabber condition detected */
/* Section 4: Extended PHY Registers */
#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */
#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */
#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */
/* ################## SPI peripheral configuration ########################## */
/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
* Activated: CRC code is present inside driver
* Deactivated: CRC code cleaned from driver
*/
#define USE_SPI_CRC 0U
/* Includes ------------------------------------------------------------------*/
/**
* @brief Include module's header file
*/
#ifdef HAL_RCC_MODULE_ENABLED
#include "stm32f1xx_hal_rcc.h"
#endif /* HAL_RCC_MODULE_ENABLED */
#ifdef HAL_GPIO_MODULE_ENABLED
#include "stm32f1xx_hal_gpio.h"
#endif /* HAL_GPIO_MODULE_ENABLED */
#ifdef HAL_EXTI_MODULE_ENABLED
#include "stm32f1xx_hal_exti.h"
#endif /* HAL_EXTI_MODULE_ENABLED */
#ifdef HAL_DMA_MODULE_ENABLED
#include "stm32f1xx_hal_dma.h"
#endif /* HAL_DMA_MODULE_ENABLED */
#ifdef HAL_ETH_MODULE_ENABLED
#include "stm32f1xx_hal_eth.h"
#endif /* HAL_ETH_MODULE_ENABLED */
#ifdef HAL_CAN_MODULE_ENABLED
#include "stm32f1xx_hal_can.h"
#endif /* HAL_CAN_MODULE_ENABLED */
#ifdef HAL_CAN_LEGACY_MODULE_ENABLED
#include "Legacy/stm32f1xx_hal_can_legacy.h"
#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */
#ifdef HAL_CEC_MODULE_ENABLED
#include "stm32f1xx_hal_cec.h"
#endif /* HAL_CEC_MODULE_ENABLED */
#ifdef HAL_CORTEX_MODULE_ENABLED
#include "stm32f1xx_hal_cortex.h"
#endif /* HAL_CORTEX_MODULE_ENABLED */
#ifdef HAL_ADC_MODULE_ENABLED
#include "stm32f1xx_hal_adc.h"
#endif /* HAL_ADC_MODULE_ENABLED */
#ifdef HAL_CRC_MODULE_ENABLED
#include "stm32f1xx_hal_crc.h"
#endif /* HAL_CRC_MODULE_ENABLED */
#ifdef HAL_DAC_MODULE_ENABLED
#include "stm32f1xx_hal_dac.h"
#endif /* HAL_DAC_MODULE_ENABLED */
#ifdef HAL_FLASH_MODULE_ENABLED
#include "stm32f1xx_hal_flash.h"
#endif /* HAL_FLASH_MODULE_ENABLED */
#ifdef HAL_SRAM_MODULE_ENABLED
#include "stm32f1xx_hal_sram.h"
#endif /* HAL_SRAM_MODULE_ENABLED */
#ifdef HAL_NOR_MODULE_ENABLED
#include "stm32f1xx_hal_nor.h"
#endif /* HAL_NOR_MODULE_ENABLED */
#ifdef HAL_I2C_MODULE_ENABLED
#include "stm32f1xx_hal_i2c.h"
#endif /* HAL_I2C_MODULE_ENABLED */
#ifdef HAL_I2S_MODULE_ENABLED
#include "stm32f1xx_hal_i2s.h"
#endif /* HAL_I2S_MODULE_ENABLED */
#ifdef HAL_IWDG_MODULE_ENABLED
#include "stm32f1xx_hal_iwdg.h"
#endif /* HAL_IWDG_MODULE_ENABLED */
#ifdef HAL_PWR_MODULE_ENABLED
#include "stm32f1xx_hal_pwr.h"
#endif /* HAL_PWR_MODULE_ENABLED */
#ifdef HAL_RTC_MODULE_ENABLED
#include "stm32f1xx_hal_rtc.h"
#endif /* HAL_RTC_MODULE_ENABLED */
#ifdef HAL_PCCARD_MODULE_ENABLED
#include "stm32f1xx_hal_pccard.h"
#endif /* HAL_PCCARD_MODULE_ENABLED */
#ifdef HAL_SD_MODULE_ENABLED
#include "stm32f1xx_hal_sd.h"
#endif /* HAL_SD_MODULE_ENABLED */
#ifdef HAL_NAND_MODULE_ENABLED
#include "stm32f1xx_hal_nand.h"
#endif /* HAL_NAND_MODULE_ENABLED */
#ifdef HAL_SPI_MODULE_ENABLED
#include "stm32f1xx_hal_spi.h"
#endif /* HAL_SPI_MODULE_ENABLED */
#ifdef HAL_TIM_MODULE_ENABLED
#include "stm32f1xx_hal_tim.h"
#endif /* HAL_TIM_MODULE_ENABLED */
#ifdef HAL_UART_MODULE_ENABLED
#include "stm32f1xx_hal_uart.h"
#endif /* HAL_UART_MODULE_ENABLED */
#ifdef HAL_USART_MODULE_ENABLED
#include "stm32f1xx_hal_usart.h"
#endif /* HAL_USART_MODULE_ENABLED */
#ifdef HAL_IRDA_MODULE_ENABLED
#include "stm32f1xx_hal_irda.h"
#endif /* HAL_IRDA_MODULE_ENABLED */
#ifdef HAL_SMARTCARD_MODULE_ENABLED
#include "stm32f1xx_hal_smartcard.h"
#endif /* HAL_SMARTCARD_MODULE_ENABLED */
#ifdef HAL_WWDG_MODULE_ENABLED
#include "stm32f1xx_hal_wwdg.h"
#endif /* HAL_WWDG_MODULE_ENABLED */
#ifdef HAL_PCD_MODULE_ENABLED
#include "stm32f1xx_hal_pcd.h"
#endif /* HAL_PCD_MODULE_ENABLED */
#ifdef HAL_HCD_MODULE_ENABLED
#include "stm32f1xx_hal_hcd.h"
#endif /* HAL_HCD_MODULE_ENABLED */
#ifdef HAL_MMC_MODULE_ENABLED
#include "stm32f1xx_hal_mmc.h"
#endif /* HAL_MMC_MODULE_ENABLED */
/* Exported macro ------------------------------------------------------------*/
#ifdef USE_FULL_ASSERT
/**
* @brief The assert_param macro is used for function's parameters check.
* @param expr If expr is false, it calls assert_failed function
* which reports the name of the source file and the source
* line number of the call that failed.
* If expr is true, it returns no value.
* @retval None
*/
#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
void assert_failed(uint8_t* file, uint32_t line);
#else
#define assert_param(expr) ((void)0U)
#endif /* USE_FULL_ASSERT */
#ifdef __cplusplus
}
#endif
#endif /* __STM32F1xx_HAL_CONF_H */
+66
View File
@@ -0,0 +1,66 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32f1xx_it.h
* @brief This file contains the headers of the interrupt handlers.
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F1xx_IT_H
#define __STM32F1xx_IT_H
#ifdef __cplusplus
extern "C" {
#endif
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */
/* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
/* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/
void NMI_Handler(void);
void HardFault_Handler(void);
void MemManage_Handler(void);
void BusFault_Handler(void);
void UsageFault_Handler(void);
void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
#ifdef __cplusplus
}
#endif
#endif /* __STM32F1xx_IT_H */