EQ 均衡效果器 主要是用了一个可以10段EQ调节的杰理板子,写了一个串中代码接口,用迪文屏的串口4和均衡效果器板子进行连接,然后通过T5L 的OS进行数据处理,再发送到均衡效果器板子上面进行调节,屏幕的分辨率是800X480,调节的效果音乐,可以用U盘播放,也可以通过手机蓝牙进行播放。
下面效果地址,调节EQ音乐效果明显,大家可以看下 https://v.youku.com/v_show/id_XNjQ1MDgyMjQ0OA==.html 下面是图片
简单介绍下输入参数 中心频率,为需要EQ调节的频率 ,范围,20 最小 ,22000最大 增益,为放大或者衰减,范围为 0最小,36最大,18为中间 Q/S为斜率,数值越大,越陡峭
人声一般频率在1K到5K HZ之间,调节这个人声会变化明显 如果有低声,低音一般在200~600HZ左右,调节这个低频会比较明显变化
迪文屏幕的主要代码如下: 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; } } }
均衡效果器,板子的主要代码如下:
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;
好的大概介绍到这里,有兴趣想法的自已下载,代码全开源。
|