——來自迪文開發(fā)者論壇
本期為大家推送迪文開發(fā)者論壇獲獎(jiǎng)開源案例——基于T5L的EQ均衡效果器。工程師采用800×480分辨率屏幕,通過T5L串口4與均衡效果器開發(fā)板通訊,調(diào)節(jié)中心頻率、增益、Q/S值等核心參數(shù),實(shí)現(xiàn)高品質(zhì)的音樂播放效果,同時(shí)還支持U盤和手機(jī)藍(lán)牙播放音樂。
【演示視頻】
完整開發(fā)資料含迪文屏DGUS工程資料與C51代碼,獲取方式:
1、前往迪文開發(fā)者論壇獲取:http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=11959
2、微信公眾號(hào)中回復(fù)“EQ均衡效果器”獲取。
【UI素材展示】
【GUI工程設(shè)計(jì)】
【C51工程設(shè)計(jì)】
(1)迪文智能屏主要代碼如下:
INIT_CPU(); //系統(tǒng)初始化
PORT_Init();//IO口初始化
T0_Init();//定時(shí)器0初始化
// T1_Init();
T2_Init();//定時(shí)器2初始化
// WDT_ON(); //打開開門狗 喂狗在定時(shí)器T2中
my_UART4_Init(115200);
uart_init();//串口初始化
ws2812_writ_byte(8); //LED初始化
resetEQValue();
updateEQPage();
delay_ms(1000);
ChangePage(1);
void TenMsHandle(void)
{
if(!TenmsFlag)
return;
TenmsFlag=0;
EQChangeSend();
// Led_CtrIO();
}
void EQChangeSend(void)
{
u8Read[10*3][2];
u8i=0;
u16fre1=0;
u8 Gain=0;
u8 QS=0;
memset(Read,0,sizeof(Read));
Read_Dgusii_Vp(0x1200,Read,30);
for(i=0;i<10;i++)
{
fre1=Read[i*3+0][0]<<8|Read[i*3+0][1];
Gain=Read[i*3+1][1];
QS=Read[i*3+2][1];
if(fre1!=EQv.Cfre||Gain!=EQv.Gain||QS!=EQv.QS)
{
EQSenddata(i,fre1,Gain,QS);
EQv.Cfre=fre1;
EQv.Gain=Gain;
EQv.QS=QS;
}
}
}
(2)均衡效果器開發(fā)板主要代碼如下:
case 0x0b://更新EQ值
if(data[2]>9)
break;
structeq_seg_info *tar_seg1=&music_mode.eq_parm.seg[data[2]];
u32eq_name = 7;
u16fre1=data[3]<<8|data[4];
floatgain1=((data[5]&0x7f)*100+data[6]);
gain1/=100;
if(data[5]>=0X80)
gain1=-gain1;
floatQ1=(data[7]*100+data[8]);
Q1/=100;
tar_seg1->freq=fre1;
tar_seg1->gain=gain1;
tar_seg1->q=Q1;
cur_eq_set_update(eq_name, tar_seg1, get_eq_nsection(eq_name), 0);
break;