This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/EK-TM4C1294XL:Kentec 显示屏上的键盘控件

Guru**** 1839620 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/582722/ccs-ek-tm4c1294xl-keyboard-widget-on-kentec-display

器件型号:EK-TM4C1294XL

工具/软件:Code Composer Studio

您好!

我尝试将键盘小部件与 Kentec LCD BoosterPack (SPI 版本)配合使用、它会很好地进入屏幕、很明显它会响应触摸、但它不执行任何操作、不调用任何函数。 我已经尝试搜索图形库用户指南和互联网、但似乎找不到解决方案。 如何使用键盘写入内容并将其传递到要处理的字符串? 或类似的东西?  

代码:

#include "command/include.h"

char g_program[4];

bool g_state = false;

extern tCanvasg_psPanels[];
extern tCanvasg_sIntroduction;
extern tKeyboardg_sKeyboard;

void OnKeyPress (tWidget *pWidget);

tCanWidget vasg_psPanels[]=
{
CanvasStruct(0),&g_sIntroduction,&g_sKentec320x240x16_SSD2119,0, 24、
320、166、canva_style_fill、ClrBlack、0、 0、0、0、0)、
};

Canvas (g_sHeading、&g_sIntroduction、0、&g_sKeyboard、
&g_sKentec320x240x16_SSD2119、0、0、320、23、
(canva_style_fill | canva_style_outline | canva_style_text)、
ClrBlack、ClrLightGreen、ClrWhiteSmoke、g_psFontCm20、"键盘"、 0、0);

Canvas (g_sIntroduction、g_psPanel、0、 G_sHeading (&G)、
&g_sKentec320x240x16_SSD2119、0、23、320、(240 - 23)、
canva_style_fill、ClrBlack、0、0、0、 0、0、0);

键盘(g_sKeyboard、&g_sHeading、 0、0、
&g_sKentec320x240x16_SSD2119、8、90、300、140、
键盘样式文本|键盘样式填充|
Keyboard _style_Auto_Repeat | keyboard_style_BG、
ClrBlack、ClrGray、ClrDarkGray、ClrGray、ClrWhite、 G_psFontCmss14、
100、50、NUM_KEYBOARD_US_ENGLISH、g_psKeyboardUSENGLISH、OnKeyPress);

void OnKeyPress(tWidget *pWidget ){

G_ST态= true;

UARTprintf ("已按任意键\n"\n);

snprintf (g_program、sizeof (g_program)、"%s"、"adc");
}

int main (void)
{
G_SysClock = CPUClock_set (XTAL25_W_PLL_VCO480、FREQ_120M);
UART0_Init (PIOSC、FREQ_PIOSC、921600);
ROM_FPUEnable();
ROM_FPULazyStackingEnable();
ROM_IntMasterEnable();

Kentec320x240x16_SSD2119Init (g_SysClock);
TouchScreenInit (g_SysClock);
TouchScreenCallbackSet (WidgetPointerMessage);

while (1)
{
WidgetAdd (widget_root、(tWidget *) g_psPanel);
WidgetPaint (widget_root);

while (!g_state)
WidgetMessageQueueProcess();

G_state =!g_state;

WidgetRemove(((tWidget *) g_psPanel);

CmdLineProcess (g_program);
}
}

此外、当我编译时、它会向我发出以下警告:

说明资源路径位置类型#145-D 类型"void (*)(tWidget *)"类型的值不能用于初始化类型为"void (*)(tWidget *、uint32_t、uint32_t)"的实体 Proj_Instrumentacao.c /Proj_Instrumentacao line 28 C/C++ problem

提前感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Helder、

    甚至我也经历了寻找相同问题解决方案的这一阶段。 不过、您可以轻松地
    按照 C 目录中的路径->Tivaware 文件夹->示例->boards->dk-tm4c129->QS_weather 应用。
    查看代码的键盘部分。 下面介绍了应用演示的 YouTube 链接
    www.youtube.com/watch (如果链接可用,请在 YouTube 上搜索“TIvAware QS weather”)

    查看视频(键盘部分)并与代码相关。 它将帮助您了解键盘小工具的工作原理。

    我让我以同样的方式工作。 稍后感谢我:)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯、我需要一些时间才能完全理解它、但至少它是有效的。 非常感谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    实际上、还有另一个问题、虽然我现在可以处理键盘控件、但如果我添加多个控件并尝试在键盘之前使用它们、我无法将其删除并绘制键盘、它总是在以前绘制一个控件。 尝试了很多东西、但这真的没有任何意义。 例如、如果我尝试执行  

    WidgetAdd (widget_root、(tWidget *) g_psPanels + 2);
    WidgetPaint (((tWidget *) g_psPanels + 2);

    它的执行就像它那样

    WidgetAdd (widget_root、(tWidget *) g_psPanels + 1);
    WidgetPaint (((tWidget *) g_psPanels + 1);

    如果我尝试"g_psPanels+3"、程序执行不正确。

    在这种情况下可能会发生什么情况?

    tCanWidget vasg_psPanels[]=
    {
    CanvasStruct(0),&g_sIntroduction,&g_sKentec320x240x16_SSD2119,0, 24、
    320、166、canva_style_fill、ClrBlack、0、 0、0、0、0)、
    CanvasStruct(0,0,&g_sIntroduction1,&g_sKentec320x240x16_SSD2119, 0, 24、
    320、166、canva_style_fill、ClrBlack、0、 0、0、0、0)、
    CanvasStruct(0,0,&g_sAdcFreq,&g_sKentec320x240x16_SSD2119, 0, 24、
    320、166、canva_style_fill、ClrBlack、0、 0、0、0、0)、
    };
    
    //canvas 参数预览 TELA
    Canvas (g_sHeading、&g_sIntroduction、0、&g_sPushBtn、
    &g_sKentec320x240x16_SSD2119、0、0、320、23、
    (canva_style_fill | canva_style_outline | canva_style_text)、
    ClrBlack、ClrLightGreen、ClrWhiteSmoke、g_psFontCm20、"Instrument"、 0、0);
    
    Canvas (g_sIntroduction、g_psPanel、0、 G_sHeading (&G)、
    &g_sKentec320x240x16_SSD2119、0、23、320、(240 - 23)、
    canva_style_fill、ClrBlack、0、0、0、 0、0、0);
    
    Canvas (g_sAdcFreq、g_psPanel + 1、 0、&g_sHeading2、
    &g_sKentec320x240x16_SSD2119、0、23、320、(240 - 23)、
    canva_style_fill、ClrBlack、0、0、0、 0、0、0);
    
    Canvas (g_sHeading2、&g_sAdcFreq、 0、&g_sPushBtn2、
    &g_sKentec320x240x16_SSD2119、0、0、320、23、
    (canva_style_fill | canva_style_outline | canva_style_text)、
    ClrBlack、ClrLightGreen、ClrWhiteSmoke、g_psFontCm20、"Select ADC freq"、 0、0);
    
    
    矩形按钮(g_sPushBtn、&g_sHeading、0、 0、
    &g_sKentec320x240x16_SSD2119、60、45、200、170、
    (PB_style_outline | PB_style_text_op不透明| PB_style_text |
    PB_Style_fill)、ClrBlack、ClrWhite、ClrLightGreen、ClrBlue、
    G_psFontCmss22b、"启用 ADC"、0、0、0、0、 0、OnButton1 Press);
    
    
    CircularButton (g_sPushBtn2、&g_sHeading2、&g_sPushBtn3、 0、
    &g_sKentec320x240x16_SSD2119、120、80、30、
    (PB_style_outline | PB_style_text_op不透明| PB_style_text |
    PB_Style_fill)、ClrBlack、ClrWhite、ClrLightGreen、ClrLightBlue、
    G_psFontCmss14b、"5Hz"、0、0、0、 0、OnButton2Press);
    
    // Botão 参数配置 o ADC para 10Hz
    CircularButton (g_sPushBtn3、&g_sHeading2、&g_sPushBtn4、0、
    &g_sKentec320x240x16_SSD2119、200、80、30、
    (PB_style_outline | PB_style_text_op不透明| PB_style_text |
    PB_Style_fill)、ClrBlack、ClrWhite、ClrLightGreen、ClrBlue、
    G_psFontCmss14b、"10Hz"、0、0、0、 0、OnButton3 Press);
    
    
    CircularButton (g_sPushBtn4、&g_sHeading2、&g_sPushBtn5、 0、
    &g_sKentec320x240x16_SSD2119、120、160、30、
    (PB_style_outline | PB_style_text_op不透明| PB_style_text |
    PB_Style_fill)、ClrBlack、ClrWhite、ClrLightGreen、ClrPink、
    G_psFontCmss14b、"15Hz"、0、0、0、 0、OnButton4 Press);
    
    
    CircularButton (g_sPushBtn5、&g_sHeading2、0、 0、
    &g_sKentec320x240x16_SSD2119、200、160、30、
    (PB_style_outline | PB_style_text_op不透明| PB_style_text |
    PB_Style_fill)、ClrBlack、ClrWhite、ClrLightGreen、ClrRed、
    G_psFontCmss14b、"20Hz"、0、0、0、 0、OnButton5Press);
    
    //
    //应用程序使用的键盘小部件。
    //
    键盘(g_sKeyboard、&g_sKeyboardBackground、0、0、
    &g_sKentec320x240x16_SSD2119、8、90、300、140、
    键盘样式填充|键盘样式自动重复|
    keyboard_style_press_notify | keyboard_style_release_notify |
    Keyboard _style_BG、
    ClrBlack、ClrGray、ClrDarkGray、ClrGray、ClrBlack、 G_psFontCmss14、
    100、100、NUM_KEYBOARD_US_ENGLISH、g_psKeyboardUSENGLISH、KeyEvent);
    
    //
    //键盘文本输入区域。
    //
    画布(g_sKeyboardText、&g_sKeyboardBackground、&g_sKeyboard、0、
    &g_sKentec320x240x16_SSD2119、BG_MIN_X、BG_MIN_Y、
    BG_MAX_X - BG_MIN_X、60、
    canva_style_fill | canva_style_text | canva_style_text_left、
    ClrBlack、ClrWhite、ClrWhite、g_psFontCms24、&g_cTempStr、 0、0);
    
    //
    //键盘接管屏幕时的完整背景。
    //
    画布(g_sKeyboardBackground、widget_root、0、&g_sKeyboardText、
    &g_sKentec320x240x16_SSD2119、BG_MIN_X、BG_MIN_Y、
    BG_MAX_X - BG_MIN_X、BG_MAX_Y - BG_MIN_Y、
    canva_style_fill、ClrBlack、ClrWhite、ClrWhite、0、 0、0、0);
    
    
    Canvas (g_sHeading1、&g_sIntroduction1、0、 &g_sKeyboard (键盘),
    &g_sKentec320x240x16_SSD2119、0、0、320、23、
    (canva_style_fill | canva_style_outline | canva_style_text)、
    ClrBlack、ClrLightGreen、ClrWhiteSmoke、g_psFontCm20、"Program"、 0、0);
    
    Canvas (g_sIntroduction1、g_psPanel + 2、0、 g_sHeading1、(&G)
    &g_sKentec320x240x16_SSD2119、0、23、320、(240 - 23)、
    canva_style_fill、ClrBlack、0、0、0、 0、0、0);