1
——来自迪文开发者论坛
本期为大家推送迪文开发者论坛获奖开源案例——基于T5L智能屏的EQ均衡效果器。工程师采用800×480分辨率屏幕,通过T5L串口4与均衡效果器开发板通讯,调节中心频率、增益、Q/S值等核心参数,实现高品质的音乐播放效果,同时还支持U盘和手机蓝牙播放音乐。
UI素材展示 GUI工程设计
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;
全部0条评论
快来发表一下你的评论吧 !