【开源获奖案例】基于T5L智能屏的EQ均衡效果器

            ——来自迪文开发者论坛

本期为大家推送迪文开发者论坛获奖开源案例——基于T5L智能屏的EQ均衡效果器。工程师采用800×480分辨率屏幕,通过T5L串口4与均衡效果器开发板通讯,调节中心频率、增益、Q/S值等核心参数,实现高品质的音乐播放效果,同时还支持U盘和手机蓝牙播放音乐。


【演示视频】

完整开发资料含迪文屏DGUS工程资料与C51代码,获取方式

1、前往迪文开发者论坛获取:/index.html/forum.php?mod=viewthread&tid=11959

2、微信公众号中回复“EQ均衡效果器”获取。

【UI素材展示】

0 12 3


【GUI工程设计】

4

C51工程设计


(1)迪文智能屏主要代码如下:

        INIT_CPU();  //系统初始化

        PORT_Init();//IO口初始化

        T0_Init();//定时器0初始化

//  T1_Init();

        T2_Init();//定时器2初始化

//  WDT_ON();           //打开开门狗 喂狗在定时器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)均衡效果器开发板主要代码如下:

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;