Bu mesele, gaty amatly Diwen Developer Forum baýragyna eýe bolan açyk çeşme - T5L esasly smtp poçta iberiji, inersenerler smtp serwerine girmek üçin e-poçta ibermek funksiýasyna ýetmek üçin WiFi moduly arkaly T5L akylly ekrany ulanýarlar. dolandyryja, alyjynyň e-poçta salgysyny, e-poçta adyny, e-poçta mazmunyny we beýleki maglumatlary girizmek üçin ekranyň işleýşi ekrana girizilip bilner. E-poçta mazmunynyň ýönekeý teksti, konfigurasiýa dolandyryşlaryny, tekst reňkini düzmek we beýleki redaktirleme usullaryny hem goldaýandygyny bellemelidiris.
1.Programma arhitekturasy
T5L akylly ekrany, e-poçta ibermek funksiýasyna ýetmek üçin 5-nji seriýa porty arkaly smtp serweri bilen täsirleşmek üçin WiFi modulyny dolandyrýar.
![](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f969e7ea32035860.png)
![ava (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bc1027de84836.jpg)
2.Interfeýs ösüşi
DGUS programma üpjünçiligi, gatlaklaryň superpozisiýasy arkaly displeý we duýgur funksiýalaryň ösüşini tamamlaýar. Ulanyjylar diňe taýýarlanan surat materiallaryny DGUS programma üpjünçiligine ýüklemeli we displeý we sensor funksiýalaryny düzmeli.
![ava (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bc23a89741572.jpg)
1. C51S.programma üpjünçiligiD.esign
T5L akylly ekran seriýa porty 5, smtp serweri bilen gatnaşygy tamamlamak üçin WiFi moduly bilen aragatnaşyk saklaýar. Esasy koduň bir bölegi aşakdakylar:
boş uart5_init (u32 baud)
{
SCON3T = 0x80;
SCON3R = 0x80;
baud = (u32) ((goşa) (FOSC / 8.0) / baud);
BODE3_DIV_H = (baud >> 8) & 0xff;
BODE3_DIV_L = baud & 0xff;
ES3R = 0;
ES3T = 0;
}
boş u5_send_byte (u8 baýt)
{
SBUF3_TX = baýt;
(! (SCON3T & 0x01));
SCON3T & = 0xfe;
}
boş u5_send_bytes (u8 * baýt, u16 len)
{
u16 we;
üçin (i = 0; i
{
SBUF3_TX = baýt;
(! (SCON3T & 0x01));
SCON3T & = 0xfe;
}
}
boş get_input (u8 * val, u8 len)
{
u8 i;
üçin (i = 0; i
{
eger (val == 0xff)
{
val = 0x00;
val [i + 1] = 0x00;
gaýdyp gelmek;
}
}
}
u8 esp8266_send_cmd (u8 * cmd, u8 * ack, u16 garaşma wagty, u8 clearBuffer)
{
u8 res = 0;
rx_stay = 0;
eger (ack && garaşma wagty && cmd)
{
(- garaşmak wagty)
{
sys_delay_ms (10);
eger (rx_sta & 0X8000)
{
eger (esp8266_check_respond (ack))
arakesme;
}
}
eger (garaşmak wagty == 0) res = 1;
eger (clearBuffer == 1) rx_sta = 0;
}
gaýdyp gelmek;
}
typedef strukturasy {
u8 smd;
u8 e-poçta [20];
u8 ady [20];
u8 ady [20];
u8 msg [60];
} EMAIL_INFO;
EMAIL_INFO e-poçta_info;
u8 jogap ber [80];
u8 wifi_name [30];
u8 wifi_passwd [30];
u8 serweri [30];
u8 porty [30];
u8 ulanyjy ady [30];
u8 auth_code [30];
u8 rx_stay;
sys_read_vp (0x1000, (u8 *) & btn_val, 1);
eger (btn_val)
{
eger (btn_val == 1)
{
sys_read_vp (0x3000, email_info.name, 10);
sys_read_vp (0x3020, email_info.email, 10);
sys_read_vp (0x3040, email_info.title, 10);
sys_read_vp (0x3060, email_info.msg, 30);
get_input (e-poçta_info.name, 20);
get_input (e-poçta_info.email, 20);
get_input (e-poçta_info.title, 20);
get_input (email_info.msg, 60);
send_packet ((u8 *) & email_info, ululygy (EMAIL_INFO));
eger (rx_sta)
send_mail (email_info.email, email_info.title, email_info.msg);
} başga bolsa (btn_val == 2)
{
sys_read_vp (0x3100, wifi_name, 15);
sys_read_vp (0x3120, wifi_passwd, 15);
get_input (wifi_name, 30);
get_input (wifi_passwd, 30);
} başga bolsa (btn_val == 3)
{
sys_read_vp (0x3200, serwer, 15);
sys_read_vp (0x3220, port, 15);
sys_read_vp (0x3240, ulanyjy ady, 15);
sys_read_vp (0x3260, auth_code, 15);
get_input (serwer, 30);
get_input (port, 30);
get_input (ulanyjy ady, 30);
get_input (auth_code, 30);
}
btn_val = 0;
sys_write_vp (0x1000, (u8 *) & btn_val, 1);
}
sys_read_vp (0x2050, (u8 *) & btn_val2,1);
eger (btn_val2! = köne_val)
{
eger (btn_val2 == 1)
sys_write_vp (0x3060, "Bu T5L-den e-poçta! \ 0 \ 0", 30);
bolmasa (btn_val2 == 2)
sys_write_vp (0x3060, "
\ 0 \ 0 ", 30);
bolmasa (btn_val2 == 3)
sys_write_vp (0x3060, " Batyr
Gyzyl
\ 0 \ 0 ", 30);
köne_val = btn_val2;
}
Iş wagty: 31-2023-nji oktýabr