[牛人杂谈] 如何使用LCDView完成Com/Segment LCD 项目

[复制链接]
772|1
 楼主| xuanhuanzi 发表于 2022-12-20 13:03 | 显示全部楼层 |阅读模式
CD, COM, LCD, se, vi
NuTool-LCDView 是一款用于辅助 COM/SEG LCD 开发的软件工具,特色是能让开发者在不需要有实体 LCD 屏幕的情况下,即可开发、除错、显示效果。操作步骤使用图形化接口点选设定以及拖拉放的方式,开发者可以依照需求自定义名称、COM/SEG 规划,快速完成 LCD 显示设置,并自动产生对应的定义代码,再结合 BSP 与 API,即可直接于 LCD 上与 PC 上展现设计效果。
本范例代码将示范如何使用 LCDView 软件工具,开发与除错,逐步完成 COM/SEG LCD 项目开发。
1.1 原理
1.1.1 LCDView 功能说明
NuTool-LCDView 的功能可以分为 Create Mode 与 Emulator Mode 两种模式。开发时需要先在Create Mode 下完成 LCD 屏幕的图标配置与 COM/SEG Table 的设定,开发完成并烧录至 MCU后,可以切换到 Emulator Mode 在 NuTool-LCDView 上查看显示效果。LCDView 提供单机版本
与嵌入在 Keil IDE 与 IAR IDE 的版本,让开发者可以在 IDE 环境下配合使用 LCDView 单步调试与侦错。
界面介绍与使用操作,可以参考 NuTool-LCDView 用户手册。
1.1.2 Supported Chips
NuTool-LCDView 目前支持以 Arm® Cortex®-M23 为核心的 M254/M256/M258 系列与M2354 系列,以及 8-bit-8051 的 ML54 系列与 ML56 系列。
1.2 执行步骤
使用 NuTool-LCDView 完成项目的执行步骤可分为四大阶段,第一阶段:准备相关硬件与软件,第二阶段:进入 Create Mode 编辑内容,第三阶段:代码编辑,第四阶段:进入 Emulator Mode 模拟与除错。
以下就各项阶段详细说明执行步骤。
1.2.1 第一阶段:准备相关硬件与软件
在此次范例程序中,会使用到的硬件资源为 NuMaker-M258KG 以及型号 TNLCDSub_M258K的 LCD 上板。
软件工具需要使用三个项目,分别为 NuTool-LCDView,NuTool-PinConfigure,以及 Nu-Link Keil Driver。NuTool-PinConfigure 是提供引脚配置的工具,配置完后可以汇入至 NuToolLCDView,以直接在 COM/SEG table 上显示对应的 Pin Number;Nu-Link Keil Driver 则是作为支持让 NuTool-LCDView 嵌入在 Keil IDE 中,以方便调适与除错。实际使用将于第二阶段:
进入 Create Mode 编辑内容与第四阶段:进入 Emulator Mode 模拟与除错分别说明。

1008363a141e76d901.png
内容是非常的刺激,想了解下载附件吧。
en-us--EC_M258_LCD_View_V1.00.zip (5.4 MB, 下载次数: 2)




 楼主| xuanhuanzi 发表于 2022-12-20 13:04 | 显示全部楼层
  1. /**************************************************************************//**
  2. * [url=home.php?mod=space&uid=288409]@file[/url]     main.c
  3. * [url=home.php?mod=space&uid=895143]@version[/url]  V3.00
  4. * [url=home.php?mod=space&uid=247401]@brief[/url]    This example code uses NK-M258KG as an example to show how to finish
  5. *                    a COM/SEG LCD project with using NuTool-LCDView and print text on RHE6616TP01(8-COM, 40-SEG, 1/4 Bias) LCD.
  6. *
  7. *
  8. * SPDX-License-Identifier: Apache-2.0
  9. * [url=home.php?mod=space&uid=17282]@CopyRight[/url] (C) 2022 Nuvoton Technology Corp. All rights reserved.
  10. ******************************************************************************/
  11. #include <stdio.h>
  12. #include <string.h>
  13. #include <stdint.h>
  14. #include "NuMicro.h"
  15. #include "lcdlib.h"

  16. /*---------------------------------------------------------------------------------------------------------*/
  17. /* Functions and variables declaration                                                                     */
  18. /*---------------------------------------------------------------------------------------------------------*/

  19. static S_LCD_CFG_T g_LCDCfg =
  20. {
  21.     __LIRC,                             /*!< LCD clock source frequency */
  22.     LCD_COM_DUTY_1_8,                   /*!< COM duty */
  23.     LCD_BIAS_LV_1_4,                    /*!< Bias level */
  24.     64,                                 /*!< Operation frame rate */
  25.     LCD_WAVEFORM_TYPE_A_NORMAL,         /*!< Waveform type */
  26.     LCD_DISABLE_ALL_INT,                /*!< Interrupt source */
  27.     LCD_HIGH_DRIVING_OFF_AND_BUF_ON,    /*!< Driving mode */
  28.     LCD_VOLTAGE_SOURCE_CP,              /*!< Voltage source */
  29. };

  30. void LCD_Init(void);
  31. void SYS_Init(void);
  32. void LCD_Start(void);
  33. void M258KG_init_lcd(void);

  34. /*----------------------------------------------------------------------*/
  35. /* M258KG_init_lcd() is generated from NuTool-PinConfigure, which defines multifunction pin of LCD */
  36. /*----------------------------------------------------------------------*/
  37. void M258KG_init_lcd(void)
  38. {
  39.     /*
  40.     Summary of LCD pin usage:
  41.         COM 0~3   : PB.5, PB.4, PB.3, PB.2
  42.         COM 4~5   : PD.11, PD.10
  43.         COM 6~7   : PE.13, PC.8
  44.         SEG 0~1   : PB.0, PB.1
  45.         SEG 2~3   : PC.9, PC.10
  46.         SEG 4~13  : PB.6, PB.7, PB.8, PB.9, PB.10, PB.11, PB.12, PB.13, PB.14, PB.15
  47.         SEG 14    : PC.14
  48.         SEG 15~16 : PE.6, PE.7
  49.         SEG 17~20 : PE.11, PE.10, PE.9, PE.8
  50.         SEG 21~25 : PD.13, PD.0, PD.1, PD.2, PD.3
  51.         SEG 26~31 : PC.0, PC.1, PC.2, PC.3, PC.4, PC.5
  52.         SEG 32~33 : PD.8, PD.9
  53.         SEG 34    : PE.14
  54.         SEG 35    : PF.15
  55.         SEG 36~37 : PA.6, PA.7
  56.         SEG 38~39 : PC.6, PC.7
  57.     */
  58.     SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA7MFP_Msk | SYS_GPA_MFPL_PA6MFP_Msk);
  59.     SYS->GPA_MFPL |= (SYS_GPA_MFPL_PA7MFP_LCD_SEG37 | SYS_GPA_MFPL_PA6MFP_LCD_SEG36);
  60.     SYS->GPB_MFPH &= ~(SYS_GPB_MFPH_PB15MFP_Msk | SYS_GPB_MFPH_PB14MFP_Msk | SYS_GPB_MFPH_PB13MFP_Msk | SYS_GPB_MFPH_PB12MFP_Msk | SYS_GPB_MFPH_PB11MFP_Msk | SYS_GPB_MFPH_PB10MFP_Msk |
  61.                        SYS_GPB_MFPH_PB9MFP_Msk | SYS_GPB_MFPH_PB8MFP_Msk);
  62.     SYS->GPB_MFPH |= (SYS_GPB_MFPH_PB15MFP_LCD_SEG13 | SYS_GPB_MFPH_PB14MFP_LCD_SEG12 | SYS_GPB_MFPH_PB13MFP_LCD_SEG11 | SYS_GPB_MFPH_PB12MFP_LCD_SEG10 | SYS_GPB_MFPH_PB11MFP_LCD_SEG9 |
  63.                       SYS_GPB_MFPH_PB10MFP_LCD_SEG8 | SYS_GPB_MFPH_PB9MFP_LCD_SEG7 | SYS_GPB_MFPH_PB8MFP_LCD_SEG6);
  64.     SYS->GPB_MFPL &= ~(SYS_GPB_MFPL_PB7MFP_Msk | SYS_GPB_MFPL_PB6MFP_Msk | SYS_GPB_MFPL_PB5MFP_Msk | SYS_GPB_MFPL_PB4MFP_Msk | SYS_GPB_MFPL_PB3MFP_Msk | SYS_GPB_MFPL_PB2MFP_Msk | SYS_GPB_MFPL_PB1MFP_Msk |
  65.                        SYS_GPB_MFPL_PB0MFP_Msk);
  66.     SYS->GPB_MFPL |= (SYS_GPB_MFPL_PB7MFP_LCD_SEG5 | SYS_GPB_MFPL_PB6MFP_LCD_SEG4 | SYS_GPB_MFPL_PB5MFP_LCD_COM0 | SYS_GPB_MFPL_PB4MFP_LCD_COM1 | SYS_GPB_MFPL_PB3MFP_LCD_COM2 |
  67.                       SYS_GPB_MFPL_PB2MFP_LCD_COM3 | SYS_GPB_MFPL_PB1MFP_LCD_SEG1 | SYS_GPB_MFPL_PB0MFP_LCD_SEG0);
  68.     SYS->GPC_MFPH &= ~(SYS_GPC_MFPH_PC14MFP_Msk | SYS_GPC_MFPH_PC10MFP_Msk | SYS_GPC_MFPH_PC9MFP_Msk | SYS_GPC_MFPH_PC8MFP_Msk);
  69.     SYS->GPC_MFPH |= (SYS_GPC_MFPH_PC14MFP_LCD_SEG14 | SYS_GPC_MFPH_PC10MFP_LCD_SEG3 | SYS_GPC_MFPH_PC9MFP_LCD_SEG2 | SYS_GPC_MFPH_PC8MFP_LCD_COM7);
  70.     SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC7MFP_Msk | SYS_GPC_MFPL_PC6MFP_Msk | SYS_GPC_MFPL_PC5MFP_Msk | SYS_GPC_MFPL_PC4MFP_Msk | SYS_GPC_MFPL_PC3MFP_Msk | SYS_GPC_MFPL_PC2MFP_Msk | SYS_GPC_MFPL_PC1MFP_Msk |
  71.                        SYS_GPC_MFPL_PC0MFP_Msk);
  72.     SYS->GPC_MFPL |= (SYS_GPC_MFPL_PC7MFP_LCD_SEG39 | SYS_GPC_MFPL_PC6MFP_LCD_SEG38 | SYS_GPC_MFPL_PC5MFP_LCD_SEG31 | SYS_GPC_MFPL_PC4MFP_LCD_SEG30 | SYS_GPC_MFPL_PC3MFP_LCD_SEG29 |
  73.                       SYS_GPC_MFPL_PC2MFP_LCD_SEG28 | SYS_GPC_MFPL_PC1MFP_LCD_SEG27 | SYS_GPC_MFPL_PC0MFP_LCD_SEG26);
  74.     SYS->GPD_MFPH &= ~(SYS_GPD_MFPH_PD13MFP_Msk | SYS_GPD_MFPH_PD11MFP_Msk | SYS_GPD_MFPH_PD10MFP_Msk | SYS_GPD_MFPH_PD9MFP_Msk | SYS_GPD_MFPH_PD8MFP_Msk);
  75.     SYS->GPD_MFPH |= (SYS_GPD_MFPH_PD13MFP_LCD_SEG21 | SYS_GPD_MFPH_PD11MFP_LCD_COM4 | SYS_GPD_MFPH_PD10MFP_LCD_COM5 | SYS_GPD_MFPH_PD9MFP_LCD_SEG33 | SYS_GPD_MFPH_PD8MFP_LCD_SEG32);
  76.     SYS->GPD_MFPL &= ~(SYS_GPD_MFPL_PD3MFP_Msk | SYS_GPD_MFPL_PD2MFP_Msk | SYS_GPD_MFPL_PD1MFP_Msk | SYS_GPD_MFPL_PD0MFP_Msk);
  77.     SYS->GPD_MFPL |= (SYS_GPD_MFPL_PD3MFP_LCD_SEG25 | SYS_GPD_MFPL_PD2MFP_LCD_SEG24 | SYS_GPD_MFPL_PD1MFP_LCD_SEG23 | SYS_GPD_MFPL_PD0MFP_LCD_SEG22);
  78.     SYS->GPE_MFPH &= ~(SYS_GPE_MFPH_PE14MFP_Msk | SYS_GPE_MFPH_PE13MFP_Msk | SYS_GPE_MFPH_PE11MFP_Msk | SYS_GPE_MFPH_PE10MFP_Msk | SYS_GPE_MFPH_PE9MFP_Msk | SYS_GPE_MFPH_PE8MFP_Msk);
  79.     SYS->GPE_MFPH |= (SYS_GPE_MFPH_PE14MFP_LCD_SEG34 | SYS_GPE_MFPH_PE13MFP_LCD_COM6 | SYS_GPE_MFPH_PE11MFP_LCD_SEG17 | SYS_GPE_MFPH_PE10MFP_LCD_SEG18 | SYS_GPE_MFPH_PE9MFP_LCD_SEG19 |
  80.                       SYS_GPE_MFPH_PE8MFP_LCD_SEG20);
  81.     SYS->GPE_MFPL &= ~(SYS_GPE_MFPL_PE7MFP_Msk | SYS_GPE_MFPL_PE6MFP_Msk);
  82.     SYS->GPE_MFPL |= (SYS_GPE_MFPL_PE7MFP_LCD_SEG16 | SYS_GPE_MFPL_PE6MFP_LCD_SEG15);
  83.     SYS->GPF_MFPH &= ~(SYS_GPF_MFPH_PF15MFP_Msk);
  84.     SYS->GPF_MFPH |= (SYS_GPF_MFPH_PF15MFP_LCD_SEG35);

  85.     return;
  86. }

  87. /*----------------------------------------------------------------------*/
  88. /* Init LCD                                                             */
  89. /*----------------------------------------------------------------------*/
  90. void LCD_Init(void)
  91. {
  92.     uint32_t u32ActiveFPS;
  93.                 /* The definition of multifunction pin is generated from NuTool-PinConfigure.*/
  94.     M258KG_init_lcd();       
  95.        
  96.     /* Reset LCD module */
  97.     SYS_ResetModule(LCD_RST);

  98.     /* Output Setting Select */
  99.     LCD_OUTPUT_SET(LCD_OUTPUT_SEL8_TO_COM4 | LCD_OUTPUT_SEL9_TO_COM5 | LCD_OUTPUT_SEL10_TO_SEG20 | LCD_OUTPUT_SEL11_TO_SEG19 |
  100.                    LCD_OUTPUT_SEL12_TO_SEG18 | LCD_OUTPUT_SEL13_TO_SEG17 | LCD_OUTPUT_SEL14_TO_COM6 | LCD_OUTPUT_SEL15_TO_COM7 |
  101.                    LCD_OUTPUT_SEL24_TO_SEG31 | LCD_OUTPUT_SEL25_TO_SEG30 | LCD_OUTPUT_SEL26_TO_SEG29 | LCD_OUTPUT_SEL27_TO_SEG28 |
  102.                    LCD_OUTPUT_SEL28_TO_SEG27 | LCD_OUTPUT_SEL29_TO_SEG26 | LCD_OUTPUT_SEL41_TO_SEG14 | LCD_OUTPUT_SEL42_TO_SEG13 |
  103.                    LCD_OUTPUT_SEL47_TO_SEG8 | LCD_OUTPUT_SEL48_TO_SEG7 | LCD_OUTPUT_SEL49_TO_SEG6);

  104.                 /* LCD Initialize and calculate real frame rate */
  105.     u32ActiveFPS = LCD_Open(&g_LCDCfg);

  106.     /* Select output voltage level 9 for 4.8V */
  107.     LCD_SET_CP_VOLTAGE(LCD_CP_VOLTAGE_LV_9);
  108. }

  109. void SYS_Init(void)
  110. {
  111.     /* Enable all GPIO clock */
  112.     CLK->AHBCLK |= (CLK_AHBCLK_GPACKEN_Msk | CLK_AHBCLK_GPBCKEN_Msk | CLK_AHBCLK_GPCCKEN_Msk | CLK_AHBCLK_GPDCKEN_Msk |
  113.                     CLK_AHBCLK_GPECKEN_Msk | CLK_AHBCLK_GPFCKEN_Msk);

  114.     /*---------------------------------------------------------------------------------------------------------*/
  115.     /* Init System Clock                                                                                       */
  116.     /*---------------------------------------------------------------------------------------------------------*/
  117.     /* Enable HIRC clock */
  118.     CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk);

  119.     /* Waiting for HIRC clock ready */
  120.     CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk);

  121.     /* Enable LIRC clock */
  122.     CLK_EnableXtalRC(CLK_PWRCTL_LIRCEN_Msk);

  123.     /* Waiting for LIRC clock ready */
  124.     CLK_WaitClockReady(CLK_STATUS_LIRCSTB_Msk);

  125.     /* Switch HCLK clock source to HIRC */
  126.     CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1));

  127.     /* Set SysTick source to HCLK/2*/
  128.     CLK_SetSysTickClockSrc(CLK_CLKSEL0_STCLKSEL_HCLK_DIV2);

  129.     /* Configure LCD module clock */
  130.     CLK_EnableModuleClock(LCD_MODULE);
  131.     CLK_SetModuleClock(LCD_MODULE, CLK_CLKSEL2_LCDSEL_LIRC, 0);

  132. }


  133. void LCD_Start(void)
  134. {

  135.     /* Enable LCD display */
  136.     LCD_ENABLE_DISPLAY();

  137.     /*---------------------------------------------------------------------------------------------------------*/
  138.     /* Set the text to show on LCD. Please refer to the NK-M258KG_EC_LCD.nvt to check the definition of the name.                                                                                        */
  139.     /*---------------------------------------------------------------------------------------------------------*/
  140.     /*Show text on the specific group with using LCDLIB_Printf */
  141.     LCDLIB_Printf(ZONE_MAIN_DIGIT, "M258");  // the "MAIN" group

  142.     /*Show char on the specific position of the group with using LCDLIB_PutChar() */
  143.     LCDLIB_PutChar(ZONE_MAIN_DIGIT, 4, 'K');  // the 5th position of the "MAIN" group
  144.     LCDLIB_PutChar(ZONE_MAIN_DIGIT, 5, 'G');  // the 6th position of the "MAIN" group

  145.     /* Show number on the specific group with using LCDLIB_PrintNumber() */
  146.     LCDLIB_PrintNumber(ZONE_TIME_DIGIT, 1352);   // the "TIME" group
  147.     LCDLIB_PrintNumber(ZONE_NUMICRO_DIGIT, 258); // the "NUMOCRO" group
  148.     LCDLIB_PrintNumber(ZONE_PPM_DIGIT, 123);     // the "ppm" group
  149.     LCDLIB_PrintNumber(ZONE_TEMP_DIGIT, 36);         // the "TEMP" group
  150.     LCDLIB_PrintNumber(ZONE_VER_DIGIT, 105004);  // the "VER" group

  151.     /* Show the specific Symbol with using LCDLIB_SetSymbol() */
  152.     LCDLIB_SetSymbol(SYMBOL_COL_9, 1);      // the dot symbol, which is inter the "TIME" group
  153.     LCDLIB_SetSymbol(SYMBOL_COL_10, 1);     // the dot symbol, which is inter "TIME" group
  154.     LCDLIB_SetSymbol(SYMBOL_NVT_11, 1);   // the "nuvoton" symbol
  155.     LCDLIB_SetSymbol(SYMBOL_WIFI_12, 1);  // the "wifi" symbol
  156.     LCDLIB_SetSymbol(SYMBOL_SOUND_14, 1);   // the "sound" symbol
  157.     LCDLIB_SetSymbol(SYMBOL_BAT_FRAME_13, 1); // the frame of the battery symbol
  158.     LCDLIB_SetSymbol(SYMBOL_BAT_1_13, 1); // the 1st level of the battery symbol
  159.     LCDLIB_SetSymbol(SYMBOL_BAT_2_13, 1); // the 2nd level of the battery stmbol
  160.     LCDLIB_SetSymbol(SYMBOL_BAT_3_13, 0); // the 3rd level of the battery symbol
  161.     LCDLIB_SetSymbol(SYMBOL_NUMICRO_15, 1); // the "NuMicro M" symbol
  162.     LCDLIB_SetSymbol(SYMBOL_PLUS_19, 1);  // the "plus" symbol, which is on the left side of the screen
  163.     LCDLIB_SetSymbol(SYMBOL_COL_69, 1);   // the dot symbol, which is inter the "MAIN" group
  164.     LCDLIB_SetSymbol(SYMBOL_COL_68, 1);     // the dot symbol, which is inter the "MAIN" group
  165.     LCDLIB_SetSymbol(SYMBOL_COL_70, 1);     // the dot symbol, which is inter the "MAIN" group
  166.     LCDLIB_SetSymbol(SYMBOL_COL_71, 1);     // the dot symbol, which is inter the "MAIN" group
  167.     LCDLIB_SetSymbol(SYMBOL_COL_72, 1);     // the dot symbol, which is inter the "MAIN" group
  168.     LCDLIB_SetSymbol(SYMBOL_COL_73, 1);     // the dot symbol, which is inter the "MAIN" group
  169.     LCDLIB_SetSymbol(SYMBOL_COL_74, 1);     // the dot symbol, which is inter the "MAIN" group
  170.     LCDLIB_SetSymbol(SYMBOL_COL_75, 1);     // the dot symbol, which is inter the "MAIN" group
  171.     LCDLIB_SetSymbol(SYMBOL_COL_76, 1);     // the dot symbol, which is inter the "MAIN" group
  172.     LCDLIB_SetSymbol(SYMBOL_COL_77, 1);     // the dot symbol, which is inter the "MAIN" group
  173.     LCDLIB_SetSymbol(SYMBOL_A_29, 1);           // the "A" symbol, which is on the right side of the "MAIN" group
  174.     LCDLIB_SetSymbol(SYMBOL_S01_47, 1);   // the 1st block, which is inter the 5x8 block on the right side of the screen
  175.     LCDLIB_SetSymbol(SYMBOL_S07_47, 1);     // the 7th block, which is inter the 5x8 block on the right side of the screen
  176.     LCDLIB_SetSymbol(SYMBOL_S13_47, 1);     // the 13th block, which is inter the 5x8 block on the right side of the screen
  177.     LCDLIB_SetSymbol(SYMBOL_S19_47, 1);     // the 19th block, which is inter the 5x8 block on the right side of the screen
  178.     LCDLIB_SetSymbol(SYMBOL_S25_47, 1);     // the 25th block, which is inter the 5x8 block on the right side of the screen
  179.     LCDLIB_SetSymbol(SYMBOL_S29_47, 1);     // the 29th block, which is inter the 5x8 block on the right side of the screen
  180.     LCDLIB_SetSymbol(SYMBOL_S33_47, 1);     // the 33th block, which is inter the 5x8 block on the right side of the screen
  181.     LCDLIB_SetSymbol(SYMBOL_S37_47, 1);     // the 37th block, which is inter the 5x8 block on the right side of the screen
  182.     LCDLIB_SetSymbol(SYMBOL_CIRCLE_UP_48, 1);   // the "up-circle" symbol, which is on the bottom left side of the screen
  183.     LCDLIB_SetSymbol(SYMBOL_ARROW_UP_48, 1);    // the "up-arrow" symbol, which is on the bottom left side of the screen
  184.     LCDLIB_SetSymbol(SYMBOL_TEMP_C_57, 1);      // the celsius temeperature symbol
  185.     LCDLIB_SetSymbol(SYMBOL_PPM_53, 1);             // the ppm symbol
  186.     LCDLIB_SetSymbol(SYMBOL_VERSION_59, 1);   // the version symbol
  187.     LCDLIB_SetSymbol(SYMBOL_P_66, 1);           // the dot symbol, which is inter the "version" group
  188.     LCDLIB_SetSymbol(SYMBOL_P_67, 1);           // the dot symbol, which is inter the "version" group
  189. }

  190. /*---------------------------------------------------------------------------------------------------------*/
  191. /*  M258_LCDView MAIN function                                                                                          */
  192. /*---------------------------------------------------------------------------------------------------------*/
  193. int main(void)
  194. {

  195.     /* Unlock protected registers */
  196.     SYS_UnlockReg();

  197.     /* Init System, peripheral clock and multi-function I/O */
  198.     SYS_Init();

  199.     /* Lock protected registers */
  200.     SYS_LockReg();

  201.     /* Init LCD multi-function pins and settings */
  202.     LCD_Init();

  203.     /* Start showing the specific text */
  204.     LCD_Start();

  205.     while (1) {}

  206. }


您需要登录后才可以回帖 登录 | 注册

本版积分规则

183

主题

2331

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部