Bu məsələ sizin üçün çox praktik Diwen Developer Forum mükafatlı açıq mənbə işi - T5L əsaslı smtp poçt göndəricisi, mühəndislər smtp serverinə daxil olmaq, e-poçt göndərmək funksiyasına nail olmaq üçün WiFi modulu vasitəsilə T5L smart ekranından istifadə edirlər. idarəçiyə , ekranın işləməsi alıcının e-poçt ünvanını , e-poçt başlığını, e-poçt məzmununu və digər məlumatları daxil etmək üçün ekrana daxil edilə bilər. Qeyd etmək lazımdır ki, e-poçt məzmunu həm də düz mətni, konfiqurasiya nəzarətlərini, mətn rəngini təyin etməyi və digər redaktə üsullarını dəstəkləyir.
1.Proqram Memarlığı
T5L smart ekranı e-poçt göndərmə funksiyasına nail olmaq üçün serial port 5 vasitəsilə smtp serveri ilə qarşılıqlı əlaqə yaratmaq üçün WiFi modulunu idarə edir.
![](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. İnterfeys inkişafı
DGUS proqramı təbəqələrin superpozisiyası vasitəsilə ekran və toxunma funksiyalarının inkişafını tamamlayır. İstifadəçilər yalnız hazırlanmış şəkil materiallarını DGUS proqramına yükləməli və ekran və toxunma funksiyalarını qurmalıdırlar.
![ava (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bc23a89741572.jpg)
1. C51Stez-tezDesign
T5L smart ekran serial port 5 smtp serveri ilə qarşılıqlı əlaqəni tamamlamaq üçün WiFi modulu ilə əlaqə qurur. Əsas kodun bir hissəsi aşağıdakı kimidir:
void uart5_init(u32 baud)
{
SCON3T = 0x80;
SCON3R = 0x80;
baud = (u32)((ikiqat)(FOSC/8.0)/baud);
BODE3_DIV_H = (baud>>8)&0xff;
BODE3_DIV_L = ötürmə&0xff;
ES3R = 0;
ES3T = 0;
}
u5_göndərmə_baytını ləğv edin (u8 bayt)
{
SBUF3_TX = bayt;
while(!(SCON3T&0x01));
SCON3T &= 0xfe;
}
boş u5_send_bytes(u8 *bayt,u16 len)
{
u16 və;
üçün(i=0;i
{
SBUF3_TX = bayt;
while(!(SCON3T&0x01));
SCON3T &= 0xfe;
}
}
void get_input(u8 * val,u8 len)
{
u8 i;
üçün(i=0;i
{
əgər(val==0xff)
{
val = 0x00;
val[i+1] = 0x00;
qayıtmaq;
}
}
}
u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 gözləmə vaxtı,u8 clearBuffer)
{
u8 res=0;
rx_stay=0;
əgər(ack&&waittime&&cmd)
{
while(--gözləmə vaxtı)
{
sys_delay_ms(10);
əgər(rx_sta&0X8000)
{
əgər(esp8266_check_respond(ack))
fasilə;
}
}
if(gözləmə vaxtı==0)res=1;
if(clearBuffer==1)rx_sta=0;
}
geri qayıtmaq;
}
typedef strukturu{
u8 cmd;
u8 e-poçtu[20];
u8 adı[20];
u8 başlığı[20];
u8 msg[60];
}EMAIL_INFO;
EMAIL_INFO email_info;
u8 cavab[80];
u8 wifi_name[30];
u8 wifi_passwd[30];
u8 server[30];
u8 port[30];
u8 istifadəçi adı[30];
u8 auth_code[30];
u8 rx_stay;
sys_read_vp(0x1000,(u8*)&btn_val,1);
əgər(btn_val)
{
əgər(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(email_info.name,20);
get_input(email_info.email,20);
get_input(email_info.title,20);
get_input(email_info.msg,60);
send_packet((u8*)&email_info,sizeof(EMAIL_INFO));
əgər(rx_sta)
göndərmə_poçtu(email_info.email,email_info.title,email_info.msg);
}else if(btn_val==2)
{
sys_read_vp(0x3100,wifi_adı,15);
sys_read_vp(0x3120,wifi_passwd,15);
get_input(wifi_adı,30);
get_input(wifi_passwd,30);
}else if(btn_val==3)
{
sys_read_vp (0x3200, server, 15);
sys_read_vp (0x3220, port, 15);
sys_read_vp(0x3240, istifadəçi adı, 15);
sys_read_vp(0x3260,auth_code,15);
get_input(server,30);
get_input(port,30);
get_input(istifadəçi adı,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);
if(btn_val2!=old_val)
{
əgər(btn_val2==1)
sys_write_vp(0x3060,"Bu, T5L-dən e-poçtdur!\0\0",30);
başqa əgər (btn_val2==2)
sys_write_vp(0x3060,"
\0\0",30);
başqa if(btn_val2==3)
sys_write_vp(0x3060," Cəsarətli
Qırmızı
\0\0",30);
köhnə_val = btn_val2;
}
Göndərmə vaxtı: 31 oktyabr 2023-cü il