Clone13

Dependents:   SignalProcessLab DigitalSignalAlgorithm_Lab DigitalSignal_Lab

Committer:
ngtkien
Date:
Wed Aug 28 17:02:28 2019 +0000
Revision:
1:fc2dc08db78b
Parent:
0:ef139e18ca64
add several command

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ngtkien 0:ef139e18ca64 1 //
ngtkien 0:ef139e18ca64 2 // RK043FN48H.h - DISCO_F746NG display
ngtkien 0:ef139e18ca64 3 //
ngtkien 0:ef139e18ca64 4
ngtkien 0:ef139e18ca64 5 #include "RK043FN48H.h"
ngtkien 0:ef139e18ca64 6
ngtkien 0:ef139e18ca64 7 static Layer _selectedLayer = Foreground;
ngtkien 0:ef139e18ca64 8
ngtkien 0:ef139e18ca64 9 RK043FN48H::RK043FN48H()
ngtkien 0:ef139e18ca64 10 {
ngtkien 0:ef139e18ca64 11 BSP_LCD_Init();
ngtkien 0:ef139e18ca64 12
ngtkien 0:ef139e18ca64 13 FbBackgroundStartAdress = LCD_FB_START_ADDRESS;
ngtkien 0:ef139e18ca64 14 FbForegroundStartAdress = LCD_FB_START_ADDRESS+(BSP_LCD_GetXSize()*BSP_LCD_GetYSize()*4);
ngtkien 0:ef139e18ca64 15
ngtkien 0:ef139e18ca64 16 BSP_LCD_LayerDefaultInit(0, FbBackgroundStartAdress);
ngtkien 0:ef139e18ca64 17 BSP_LCD_LayerDefaultInit(1, FbForegroundStartAdress);
ngtkien 0:ef139e18ca64 18
ngtkien 0:ef139e18ca64 19 BSP_LCD_DisplayOn();
ngtkien 0:ef139e18ca64 20
ngtkien 0:ef139e18ca64 21 actualDrawProp[0].TextColor = LCD_COLOR_WHITE;
ngtkien 0:ef139e18ca64 22 actualDrawProp[0].BackColor = LCD_COLOR_BLACK;
ngtkien 0:ef139e18ca64 23 actualDrawProp[0].pFont = &Font16; // &LCD_DEFAULT_FONT
ngtkien 0:ef139e18ca64 24 //_selectedFont[0] = GrFont(Courier16);
ngtkien 0:ef139e18ca64 25
ngtkien 0:ef139e18ca64 26 actualDrawProp[1].TextColor = LCD_COLOR_WHITE & ALPHA_MASK;
ngtkien 0:ef139e18ca64 27 actualDrawProp[1].BackColor = LCD_COLOR_BLACK & ALPHA_MASK;
ngtkien 0:ef139e18ca64 28 actualDrawProp[1].pFont = &Font16; // &LCD_DEFAULT_FONT
ngtkien 0:ef139e18ca64 29 //_selectedFont[1] = GrFont(Courier16);
ngtkien 0:ef139e18ca64 30
ngtkien 0:ef139e18ca64 31 // Initialize layer 0 properties
ngtkien 0:ef139e18ca64 32 SetActiveLayer(Background);
ngtkien 0:ef139e18ca64 33 SetBackgroundColor(actualDrawProp[0].BackColor);
ngtkien 0:ef139e18ca64 34 Clear();
ngtkien 0:ef139e18ca64 35 SetForegroundColor(actualDrawProp[0].TextColor);
ngtkien 0:ef139e18ca64 36 BSP_LCD_SetFont(&Font16);
ngtkien 0:ef139e18ca64 37
ngtkien 0:ef139e18ca64 38 // Initialize layer 1 properties
ngtkien 0:ef139e18ca64 39 SetActiveLayer(Foreground);
ngtkien 0:ef139e18ca64 40 SetBackgroundColor(actualDrawProp[1].BackColor);
ngtkien 0:ef139e18ca64 41 Clear();
ngtkien 0:ef139e18ca64 42 SetForegroundColor(actualDrawProp[1].TextColor);
ngtkien 0:ef139e18ca64 43 BSP_LCD_SetFont(&Font16);
ngtkien 0:ef139e18ca64 44
ngtkien 0:ef139e18ca64 45 // Set layers transparency
ngtkien 0:ef139e18ca64 46 SetLayersTransparency(0xFF, 0xFF);
ngtkien 0:ef139e18ca64 47 SetLayersVisibility(true, true);
ngtkien 0:ef139e18ca64 48
ngtkien 0:ef139e18ca64 49 /*
ngtkien 0:ef139e18ca64 50 _cursorPos[Background].X = 0;
ngtkien 0:ef139e18ca64 51 _cursorPos[Background].Y = 0;
ngtkien 0:ef139e18ca64 52 _cursorPos[Foreground].X = 0;
ngtkien 0:ef139e18ca64 53 _cursorPos[Foreground].Y = 0;
ngtkien 0:ef139e18ca64 54 */
ngtkien 0:ef139e18ca64 55 }
ngtkien 0:ef139e18ca64 56
ngtkien 0:ef139e18ca64 57
ngtkien 0:ef139e18ca64 58 RK043FN48H::~RK043FN48H()
ngtkien 0:ef139e18ca64 59 {
ngtkien 0:ef139e18ca64 60 BSP_LCD_DeInit();
ngtkien 0:ef139e18ca64 61 }
ngtkien 0:ef139e18ca64 62
ngtkien 0:ef139e18ca64 63
ngtkien 0:ef139e18ca64 64 void RK043FN48H::Clear()
ngtkien 0:ef139e18ca64 65 {
ngtkien 0:ef139e18ca64 66 BSP_LCD_Clear(actualDrawProp[_selectedLayer].BackColor);
ngtkien 0:ef139e18ca64 67 }
ngtkien 0:ef139e18ca64 68
ngtkien 0:ef139e18ca64 69
ngtkien 0:ef139e18ca64 70 void RK043FN48H::Clear(uint32_t color)
ngtkien 0:ef139e18ca64 71 {
ngtkien 0:ef139e18ca64 72 BSP_LCD_Clear(color);
ngtkien 0:ef139e18ca64 73 }
ngtkien 0:ef139e18ca64 74
ngtkien 0:ef139e18ca64 75
ngtkien 0:ef139e18ca64 76 void RK043FN48H::ClearLayer(Layer layer, uint32_t color)
ngtkien 0:ef139e18ca64 77 {
ngtkien 0:ef139e18ca64 78 Layer oldLayer = GetActiveLayer();
ngtkien 0:ef139e18ca64 79
ngtkien 0:ef139e18ca64 80 SetActiveLayer(layer);
ngtkien 0:ef139e18ca64 81 Clear(color);
ngtkien 0:ef139e18ca64 82 SetActiveLayer(oldLayer);
ngtkien 0:ef139e18ca64 83 }
ngtkien 0:ef139e18ca64 84
ngtkien 0:ef139e18ca64 85
ngtkien 0:ef139e18ca64 86 void RK043FN48H::SetBackgroundColor(uint32_t color)
ngtkien 0:ef139e18ca64 87 {
ngtkien 0:ef139e18ca64 88 actualDrawProp[_selectedLayer].BackColor = color;
ngtkien 0:ef139e18ca64 89 BSP_LCD_SetBackColor(actualDrawProp[_selectedLayer].BackColor);
ngtkien 0:ef139e18ca64 90 }
ngtkien 0:ef139e18ca64 91
ngtkien 0:ef139e18ca64 92
ngtkien 0:ef139e18ca64 93 void RK043FN48H::SetForegroundColor(uint32_t color)
ngtkien 0:ef139e18ca64 94 {
ngtkien 0:ef139e18ca64 95 actualDrawProp[_selectedLayer].TextColor = color;
ngtkien 0:ef139e18ca64 96 BSP_LCD_SetTextColor(actualDrawProp[_selectedLayer].TextColor);
ngtkien 0:ef139e18ca64 97 }
ngtkien 0:ef139e18ca64 98
ngtkien 0:ef139e18ca64 99
ngtkien 0:ef139e18ca64 100 void RK043FN48H::SetDrawColor(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
ngtkien 0:ef139e18ca64 101 {
ngtkien 0:ef139e18ca64 102 // Calculate display pixel value for selected color
ngtkien 0:ef139e18ca64 103 uint32_t color = red << 16 | green << 8 | blue | alpha << 24;
ngtkien 0:ef139e18ca64 104 SetForegroundColor(color);
ngtkien 0:ef139e18ca64 105 }
ngtkien 0:ef139e18ca64 106
ngtkien 0:ef139e18ca64 107 uint32_t RK043FN48H::GetDrawColor()
ngtkien 0:ef139e18ca64 108 {
ngtkien 0:ef139e18ca64 109 return actualDrawProp[_selectedLayer].TextColor;
ngtkien 0:ef139e18ca64 110 }
ngtkien 0:ef139e18ca64 111
ngtkien 0:ef139e18ca64 112
ngtkien 0:ef139e18ca64 113 void RK043FN48H::DrawPoint(int posX, int posY, uint32_t colorMask)
ngtkien 0:ef139e18ca64 114 {
ngtkien 0:ef139e18ca64 115 if( posX >= 0 && posX < DisplayWidth() && posY >=0 && posY < DisplayHeight()) {
ngtkien 0:ef139e18ca64 116 BSP_LCD_DrawPixel(posX, posY, colorMask);
ngtkien 0:ef139e18ca64 117 }
ngtkien 0:ef139e18ca64 118 }
ngtkien 0:ef139e18ca64 119
ngtkien 0:ef139e18ca64 120
ngtkien 0:ef139e18ca64 121 //void RK043FN48H::DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2)
ngtkien 0:ef139e18ca64 122 //{
ngtkien 0:ef139e18ca64 123 // BSP_LCD_DrawLine(x1, y1, x2, y2);
ngtkien 0:ef139e18ca64 124 //}
ngtkien 0:ef139e18ca64 125
ngtkien 0:ef139e18ca64 126
ngtkien 0:ef139e18ca64 127 void RK043FN48H::CopyBitmap(Layer layer, uint8_t * bitmap, uint32_t width, uint32_t height, uint32_t rgbGolorCode)
ngtkien 0:ef139e18ca64 128 {
ngtkien 0:ef139e18ca64 129 // Check size
ngtkien 0:ef139e18ca64 130 if(width > DisplayWidth() || height > DisplayHeight())
ngtkien 0:ef139e18ca64 131 return;
ngtkien 0:ef139e18ca64 132
ngtkien 0:ef139e18ca64 133 ClearLayer(layer, 0x00000000);
ngtkien 0:ef139e18ca64 134
ngtkien 0:ef139e18ca64 135 uint16_t maxCol = width / 8; // 60 columns
ngtkien 0:ef139e18ca64 136 if ((width % 8) != 0)
ngtkien 0:ef139e18ca64 137 {
ngtkien 0:ef139e18ca64 138 maxCol++;
ngtkien 0:ef139e18ca64 139 }
ngtkien 0:ef139e18ca64 140
ngtkien 0:ef139e18ca64 141 for (int y = 0; y < height; y++) {
ngtkien 0:ef139e18ca64 142 for (int col = 0; col < maxCol; col++) {
ngtkien 0:ef139e18ca64 143 uint8_t shift = bitmap[y*maxCol + col];
ngtkien 0:ef139e18ca64 144 for (int pos = 0; pos < 8; pos++) {
ngtkien 0:ef139e18ca64 145 int x = (col << 3) + pos; // x = col * 8 + pos
ngtkien 0:ef139e18ca64 146 if (x >= width)
ngtkien 0:ef139e18ca64 147 break;
ngtkien 0:ef139e18ca64 148
ngtkien 0:ef139e18ca64 149 if(shift & 1 << pos)
ngtkien 0:ef139e18ca64 150 {
ngtkien 0:ef139e18ca64 151 DrawPoint(x, y, rgbGolorCode);
ngtkien 0:ef139e18ca64 152 }
ngtkien 0:ef139e18ca64 153 }
ngtkien 0:ef139e18ca64 154 }
ngtkien 0:ef139e18ca64 155 }
ngtkien 0:ef139e18ca64 156 }
ngtkien 0:ef139e18ca64 157
ngtkien 0:ef139e18ca64 158
ngtkien 0:ef139e18ca64 159 uint16_t RK043FN48H::DisplayWidth()
ngtkien 0:ef139e18ca64 160 {
ngtkien 0:ef139e18ca64 161 return BSP_LCD_GetXSize();
ngtkien 0:ef139e18ca64 162 }
ngtkien 0:ef139e18ca64 163
ngtkien 0:ef139e18ca64 164
ngtkien 0:ef139e18ca64 165 uint16_t RK043FN48H::DisplayHeight()
ngtkien 0:ef139e18ca64 166 {
ngtkien 0:ef139e18ca64 167 return BSP_LCD_GetYSize();
ngtkien 0:ef139e18ca64 168 }
ngtkien 0:ef139e18ca64 169
ngtkien 0:ef139e18ca64 170
ngtkien 0:ef139e18ca64 171 void RK043FN48H::SetActiveLayer(Layer layer)
ngtkien 0:ef139e18ca64 172 {
ngtkien 0:ef139e18ca64 173 _selectedLayer = layer;
ngtkien 0:ef139e18ca64 174
ngtkien 0:ef139e18ca64 175 BSP_LCD_SelectLayer((uint32_t)layer);
ngtkien 0:ef139e18ca64 176 }
ngtkien 0:ef139e18ca64 177
ngtkien 0:ef139e18ca64 178
ngtkien 0:ef139e18ca64 179 Layer RK043FN48H::GetActiveLayer()
ngtkien 0:ef139e18ca64 180 {
ngtkien 0:ef139e18ca64 181 return _selectedLayer;
ngtkien 0:ef139e18ca64 182 }
ngtkien 0:ef139e18ca64 183
ngtkien 0:ef139e18ca64 184
ngtkien 0:ef139e18ca64 185 void RK043FN48H::SetLayersTransparency( uint8_t background, uint8_t foreground)
ngtkien 0:ef139e18ca64 186 {
ngtkien 0:ef139e18ca64 187 BSP_LCD_SetTransparency(0, background);
ngtkien 0:ef139e18ca64 188 BSP_LCD_SetTransparency(1, foreground);
ngtkien 0:ef139e18ca64 189 }
ngtkien 0:ef139e18ca64 190
ngtkien 0:ef139e18ca64 191
ngtkien 0:ef139e18ca64 192 void RK043FN48H::SetLayersVisibility( bool background, bool foreground)
ngtkien 0:ef139e18ca64 193 {
ngtkien 0:ef139e18ca64 194 BSP_LCD_SetLayerVisible(0, background ? ENABLE : DISABLE);
ngtkien 0:ef139e18ca64 195 BSP_LCD_SetLayerVisible(1, foreground ? ENABLE : DISABLE);
ngtkien 0:ef139e18ca64 196 }
ngtkien 0:ef139e18ca64 197
ngtkien 0:ef139e18ca64 198
ngtkien 0:ef139e18ca64 199
ngtkien 1:fc2dc08db78b 200 //New Function
ngtkien 1:fc2dc08db78b 201 //Add date: 25/08/2019
ngtkien 1:fc2dc08db78b 202
ngtkien 1:fc2dc08db78b 203 void RK043FN48H::DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length)
ngtkien 1:fc2dc08db78b 204 {
ngtkien 1:fc2dc08db78b 205 BSP_LCD_DrawHLine(Xpos, Ypos, Length);
ngtkien 1:fc2dc08db78b 206 }
ngtkien 1:fc2dc08db78b 207
ngtkien 1:fc2dc08db78b 208 void RK043FN48H::DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length)
ngtkien 1:fc2dc08db78b 209 {
ngtkien 1:fc2dc08db78b 210 BSP_LCD_DrawVLine(Xpos, Ypos, Length);
ngtkien 1:fc2dc08db78b 211 }
ngtkien 1:fc2dc08db78b 212
ngtkien 1:fc2dc08db78b 213 void RK043FN48H::DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2)
ngtkien 1:fc2dc08db78b 214 {
ngtkien 1:fc2dc08db78b 215 BSP_LCD_DrawLine(x1, y1, x2, y2);
ngtkien 1:fc2dc08db78b 216 }
ngtkien 1:fc2dc08db78b 217
ngtkien 1:fc2dc08db78b 218 void RK043FN48H::DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
ngtkien 1:fc2dc08db78b 219 {
ngtkien 1:fc2dc08db78b 220 BSP_LCD_DrawRect(Xpos, Ypos, Width, Height);
ngtkien 1:fc2dc08db78b 221 }
ngtkien 1:fc2dc08db78b 222
ngtkien 1:fc2dc08db78b 223 void RK043FN48H::DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius)
ngtkien 1:fc2dc08db78b 224 {
ngtkien 1:fc2dc08db78b 225 BSP_LCD_DrawCircle(Xpos, Ypos, Radius);
ngtkien 1:fc2dc08db78b 226 }
ngtkien 1:fc2dc08db78b 227
ngtkien 1:fc2dc08db78b 228 void RK043FN48H::DrawPolygon(pPoint Points, uint16_t PointCount)
ngtkien 1:fc2dc08db78b 229 {
ngtkien 1:fc2dc08db78b 230 BSP_LCD_DrawPolygon(Points, PointCount);
ngtkien 1:fc2dc08db78b 231 }
ngtkien 1:fc2dc08db78b 232
ngtkien 1:fc2dc08db78b 233 void RK043FN48H::DrawEllipse(int Xpos, int Ypos, int XRadius, int YRadius)
ngtkien 1:fc2dc08db78b 234 {
ngtkien 1:fc2dc08db78b 235 BSP_LCD_DrawEllipse(Xpos, Ypos, XRadius, YRadius);
ngtkien 1:fc2dc08db78b 236 }
ngtkien 1:fc2dc08db78b 237
ngtkien 1:fc2dc08db78b 238 void RK043FN48H::DrawBitmap(uint32_t Xpos, uint32_t Ypos, uint8_t *pbmp)
ngtkien 1:fc2dc08db78b 239 {
ngtkien 1:fc2dc08db78b 240 BSP_LCD_DrawBitmap(Xpos, Ypos, pbmp);
ngtkien 1:fc2dc08db78b 241 }
ngtkien 1:fc2dc08db78b 242
ngtkien 1:fc2dc08db78b 243 void RK043FN48H::FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
ngtkien 1:fc2dc08db78b 244 {
ngtkien 1:fc2dc08db78b 245 BSP_LCD_FillRect(Xpos, Ypos, Width, Height);
ngtkien 1:fc2dc08db78b 246 }
ngtkien 1:fc2dc08db78b 247
ngtkien 1:fc2dc08db78b 248 void RK043FN48H::FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius)
ngtkien 1:fc2dc08db78b 249 {
ngtkien 1:fc2dc08db78b 250 BSP_LCD_FillCircle(Xpos, Ypos, Radius);
ngtkien 1:fc2dc08db78b 251 }
ngtkien 1:fc2dc08db78b 252
ngtkien 1:fc2dc08db78b 253 void RK043FN48H::FillPolygon(pPoint Points, uint16_t PointCount)
ngtkien 1:fc2dc08db78b 254 {
ngtkien 1:fc2dc08db78b 255 BSP_LCD_FillPolygon(Points, PointCount);
ngtkien 1:fc2dc08db78b 256 }
ngtkien 1:fc2dc08db78b 257
ngtkien 1:fc2dc08db78b 258 void RK043FN48H::FillEllipse(int Xpos, int Ypos, int XRadius, int YRadius)
ngtkien 1:fc2dc08db78b 259 {
ngtkien 1:fc2dc08db78b 260 BSP_LCD_FillEllipse(Xpos, Ypos, XRadius, YRadius);
ngtkien 1:fc2dc08db78b 261 }
ngtkien 1:fc2dc08db78b 262
ngtkien 1:fc2dc08db78b 263 void RK043FN48H::SetTextColor(uint32_t Color)
ngtkien 1:fc2dc08db78b 264 {
ngtkien 1:fc2dc08db78b 265 BSP_LCD_SetTextColor(Color);
ngtkien 1:fc2dc08db78b 266 }
ngtkien 1:fc2dc08db78b 267
ngtkien 1:fc2dc08db78b 268 uint32_t RK043FN48H::GetTextColor(void)
ngtkien 1:fc2dc08db78b 269 {
ngtkien 1:fc2dc08db78b 270 return BSP_LCD_GetTextColor();
ngtkien 1:fc2dc08db78b 271 }
ngtkien 1:fc2dc08db78b 272
ngtkien 1:fc2dc08db78b 273 void RK043FN48H::SetBackColor(uint32_t Color)
ngtkien 1:fc2dc08db78b 274 {
ngtkien 1:fc2dc08db78b 275 BSP_LCD_SetBackColor(Color);
ngtkien 1:fc2dc08db78b 276 }
ngtkien 1:fc2dc08db78b 277
ngtkien 1:fc2dc08db78b 278 uint32_t RK043FN48H::GetBackColor(void)
ngtkien 1:fc2dc08db78b 279 {
ngtkien 1:fc2dc08db78b 280 return BSP_LCD_GetBackColor();
ngtkien 1:fc2dc08db78b 281 }
ngtkien 1:fc2dc08db78b 282
ngtkien 1:fc2dc08db78b 283 void RK043FN48H::SetFont(sFONT *fonts)
ngtkien 1:fc2dc08db78b 284 {
ngtkien 1:fc2dc08db78b 285 BSP_LCD_SetFont(fonts);
ngtkien 1:fc2dc08db78b 286 }
ngtkien 1:fc2dc08db78b 287
ngtkien 1:fc2dc08db78b 288 sFONT *RK043FN48H::GetFont(void)
ngtkien 1:fc2dc08db78b 289 {
ngtkien 1:fc2dc08db78b 290 return BSP_LCD_GetFont();
ngtkien 1:fc2dc08db78b 291 }
ngtkien 1:fc2dc08db78b 292
ngtkien 1:fc2dc08db78b 293 uint32_t RK043FN48H::ReadPixel(uint16_t Xpos, uint16_t Ypos)
ngtkien 1:fc2dc08db78b 294 {
ngtkien 1:fc2dc08db78b 295 return BSP_LCD_ReadPixel(Xpos, Ypos);
ngtkien 1:fc2dc08db78b 296 }
ngtkien 1:fc2dc08db78b 297
ngtkien 1:fc2dc08db78b 298 void RK043FN48H::DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t pixel)
ngtkien 1:fc2dc08db78b 299 {
ngtkien 1:fc2dc08db78b 300 BSP_LCD_DrawPixel(Xpos, Ypos, pixel);
ngtkien 1:fc2dc08db78b 301 }
ngtkien 1:fc2dc08db78b 302
ngtkien 1:fc2dc08db78b 303
ngtkien 1:fc2dc08db78b 304 void RK043FN48H::ClearStringLine(uint32_t Line)
ngtkien 1:fc2dc08db78b 305 {
ngtkien 1:fc2dc08db78b 306 BSP_LCD_ClearStringLine(Line);
ngtkien 1:fc2dc08db78b 307 }
ngtkien 1:fc2dc08db78b 308
ngtkien 1:fc2dc08db78b 309 void RK043FN48H::DisplayStringAtLine(uint16_t Line, uint8_t *ptr)
ngtkien 1:fc2dc08db78b 310 {
ngtkien 1:fc2dc08db78b 311 BSP_LCD_DisplayStringAtLine(Line, ptr);
ngtkien 1:fc2dc08db78b 312 }
ngtkien 1:fc2dc08db78b 313
ngtkien 1:fc2dc08db78b 314 void RK043FN48H::DisplayStringAt(uint16_t Xpos, uint16_t Ypos, uint8_t *Text, Text_AlignModeTypdef Mode)
ngtkien 1:fc2dc08db78b 315 {
ngtkien 1:fc2dc08db78b 316 BSP_LCD_DisplayStringAt(Xpos, Ypos, Text, Mode);
ngtkien 1:fc2dc08db78b 317 }
ngtkien 1:fc2dc08db78b 318
ngtkien 1:fc2dc08db78b 319 void RK043FN48H::DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii)
ngtkien 1:fc2dc08db78b 320 {
ngtkien 1:fc2dc08db78b 321 BSP_LCD_DisplayChar(Xpos, Ypos, Ascii);
ngtkien 1:fc2dc08db78b 322 }
ngtkien 1:fc2dc08db78b 323