——Del Fòrum de desenvolupadors de DWIN
El guardonat estoig de codi obert recomanat pel fòrum DWIN es pot utilitzar a la indústria de la construcció per detectar el contingut dels components de ciment: un instrument de mesura de diverses quantitats de ciment basat en la pantalla intel·ligent T5L. Els enginyers utilitzen la pantalla intel·ligent T5L per controlar el mòdul de detecció de pes electrònic, el mòdul de mesura de la temperatura, el mòdul de calefacció, el sensor d'humitat i el mòdul de barreja per realitzar la funció de detecció de la solució sòlida i el contingut del component de ciment líquid, i donar suport a la visualització en temps real de la taxa. configuració de temperatura, registre d'historial, configuració de paràmetres de l'etapa i altres funcions.
1. Estructura del programa
![acdsb (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb534d9587236.jpg)
2. Pantalla de material d'UI
![acdsb (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb6b626488123.jpg)
![acdsb (4)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb84270f77694.jpg)
![acdsb (3)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb975b6581165.jpg)
![acdsb (5)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbaf20a513069.jpg)
3.Exemple de desenvolupament d'UI
![acdsb (6)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbc7a0f429134.jpg)
4.C51 disseny de programari
El programa d'ordres d'inicialització perquè l'enginyer es comuniqui amb la placa de control mitjançant el port sèrie T5L 2 és el següent:
void app_init()
{
és_prova = 0;
temps_execució_prova = 0;
is_sec = 0;
període1 = 0;
és_període1 = 0;
uart2_init(115200);
send_bytes("AT+INIT=0\r\n",sizeof("AT+INIT=0\r\n")-1);
sys_delay_ms(2500);
sys_pic(1);
send_bytes("AT+START\r\n",sizeof("AT+START\r\n")-1);
}
El programa principal de la pantalla intel·ligent T5L que interactua amb el tauler de control per realitzar la funció de detecció de composició de ciment és el següent:
void btn_click_handler()
{
#definir BTN_VAL_ADDR 0x1000
u16 btn_val;
if(està_provant&&és_sec)
{
is_sec = 0;
temps_execució_prova++;
btn_val = sprintf(commbuff,"%02u:%02u",(u16)(test_run_time/60),(u16)(test_run_time%60));
commbuff[btn_val+1] = 0;
sys_write_vp(TEST_TIME_VP,commbuff,5);
if(uart2rxsta&UART2_PACKET_OK)
{
if(uart2buf[0]==0x01&&uart2buf[1]==0x02)
{
init_weight = *(float*)(uart2buf+2);
init_weight *= (*(float*)flashdat);
sys_write_vp(0x1178, (u8*)&init_weight, 2);
}else if(uart2buf[0]==0x02&&uart2buf[1]==0x05)
{
init_ml = *(float*)(uart2buf+2);
init_ml /= (*(float*)flashdat+20);
sys_write_vp(0x1180, (u8*)&init_ml, 2);
}else if(uart2buf[0]==0x03&&uart2buf[1]==0x07)
{
speed_val = *(float*)(uart2buf+2);
disp_val += (speed_val*2.45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
}else if(uart2buf[0]==0x04)
{
total_num = uart2buf[1]*256+uart2buf[2];
}else if(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
if(és_període1)
{
és_període1 = 0;
t_mostra();
if(està_provant&&és_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
if(is_btn_scan==0)
tornar;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
if(btn_val==0)
tornar;
if(btn_val
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Consulteu el codi font per obtenir més informació.
Hora de publicació: Dec-02-2023