战舰自带的GUI有没有资料。
可以显示一个按钮。但是实在不明白,怎么针对触摸屏的数据,来更新按钮的状态和获取按钮的返回值。(现在我按不按的没反应)
觉得UCGUI 用起来不太熟悉,很多地方不懂。觉得战舰自带的GUI精简一点,实用。原子老师有没有自带GUI的资料?
基础有点差,看最后一个例程的代码也没太看懂怎么实现按键状态更新的。
以下是我拷贝出来的可以运行了的一段代码。实现了显示一个按钮,但是按不按没反应。
#include "includes.h"
#include "malloc.h"
#include "spblcd.h"
#define BUTTON_0 1
#define BUTTON_1 2
#define BUTTON_2 3
#define BUTTON_3 4
#define BUTTON_4 5
#define BUTTON_5 6
#define BUTTON_6 7
_btn_obj * tbtn[10];
//{0,100,100,50,BUTTON_0,2,0,"BUTTON0",16,10,BTN_DFU_BCFUC,BTN_DFU_BCFDC,(u16*)gui_memin_malloc(4*2),NULL,NULL};
void BUTTON_Clear(void)
{
tbtn[0]=btn_creat(0,100,100,50,0,0x02);//创建按钮
tbtn[0]->sta=0;
tbtn[0]->caption="BUTTON1";//名字
tbtn[0]->font=16;//字体
tbtn[0]->arcbtnr=10;
tbtn[0]->picbtnpathu=0;
tbtn[0]->picbtnpathd=0;
btn_draw(tbtn[0]);//画按钮
}
//main函数
int main(void)
{
u8 WHILE = 1;
u8 ra=0;
delay_init(168); //延时初始化
uart_init(115200); //初始化串口波特率为115200
LED_Init(); //初始化LED
LCD_Init(); //LCD初始化
BEEP_Init(); //蜂鸣器初始化
KEY_Init(); //按键初始化
AT24CXX_Init(); //EEPROM初始化
W25QXX_Init(); //初始化W25Q128
my_mem_init(SRAMIN); //初始化内部内存池
my_mem_init(SRAMCCM); //初始化CCM内存池
tp_dev.init();
gui_init();
LCD_Clear(RED); //黑屏
POINT_COLOR=WHITE;
BACK_COLOR=BLACK;
// btn_test(10,100,100,100,0,0,10,"TESTBUTTON",0,0);
BUTTON_Clear();
while(WHILE)
{
ra = btn_check(tbtn[0],&in_obj);
if(ra)
{
if((tbtn[0]->sta&0X80)==0)//有有效操作
{
LED0 = 0;
}
}
}
return 0;
}
// tp_dev.scan(0);
// if(tp_dev.sta&TP_PRES_DOWN) //触摸屏被按下
// {
// if(tp_dev.x[0] < lcddev.width && tp_dev.y[0]<lcddev.height)
// {
// TP_Draw_Big_Point(tp_dev.x[0],tp_dev.y[0],BLUE); //画图
// }
// }else delay_ms(10); //没有按键按下的时候
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
while(WHILE)
{
tp_dev.scan(0); //加入
ra = btn_check(tbtn[0],&in_obj);
if(ra)
{
if((tbtn[0]->sta&0X80)==0)
{
}
LED0 = 1;
}
LED1= ~LED1;
delay_ms(500);
}
是这样么?,还是不行啊
一周热门 更多>