主要框架逻辑是 迪文串中屏+解码板 ,通过串口通信控制
视频效果如下: https://v.youku.com/video?vid=XNjQ3NzA2OTE5Mg%3D%3D
界面如下:
屏幕代码如下:
void main(){ INIT_CPU(); //系统初始化 PORT_Init();//IO口初始化
T0_Init();//定时器0初始化 T2_Init();//定时器2初始化 my_UART4_Init(115200); uart_init();//串口初始化
while(1){ Uart_Handle_all(); TenMsHandle();
Read_0xF00();//数据自动上传
} }
#define DwinLocal_addr 0x51
void MicEffectCheck(void) { u8 Read[2]; u8 Senddata[3];
Read_Dgusii_Vp(0x2000,Read,1); if(!Read[1]) return;
Senddata[0]=DwinLocal_addr; Senddata[1]=1; Senddata[2]=Read[1];
UART4_SendStr(Senddata,3);
Read[1]=0; write_dgusii_vp(0x2000,Read,1); }
void MusicEffectCheck(void) { u8 Read[2]; u8 Senddata[3];
Read_Dgusii_Vp(0x2001,Read,1); if(!Read[1]) return;
Senddata[0]=DwinLocal_addr; Senddata[1]=2; Senddata[2]=Read[1];
UART4_SendStr(Senddata,3);
Read[1]=0; write_dgusii_vp(0x2001,Read,1); }
解码板代码如下:
//变声模式切换 void audio_voice_changer_mode_switch(u32voice_changer_name, VOICE_CHANGER_MODE voice_changer_mode) { VOICECHANGER_PARM parm = {0}; switch(voice_changer_mode) { case VOICE_CHANGER_NONE://原声 audio_voice_changer_bypass(voice_changer_name, RUN_BYPASS); break; case VOICE_CHANGER_UNCLE://大叔 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 130; parm.formant_shift = 100;//无效参数 parm.effect_v = EFFECT_VOICECHANGE_PITCHSHIFT; audio_voice_changer_update_parm(voice_changer_name, &parm); break; case VOICE_CHANGER_GODDESS://女神 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 56; parm.formant_shift = 90; parm.effect_v = EFFECT_VOICECHANGE_SPECTRUM; audio_voice_changer_update_parm(voice_changer_name, &parm); break; case VOICE_CHANGER_BABY://娃娃音 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 50; parm.formant_shift = 100;//无效参数 parm.effect_v = EFFECT_VOICECHANGE_PITCHSHIFT; audio_voice_changer_update_parm(voice_changer_name, &parm); break; case VOICE_CHANGER_MAGIC://魔音女声 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 75; parm.formant_shift = 80; parm.effect_v = EFFECT_VOICECHANGE_PITCHSHIFT; audio_voice_changer_update_parm(voice_changer_name, &parm); break; case VOICE_CHANGER_MONSTER://怪兽音 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 160; parm.formant_shift = 100;//无效参数 parm.effect_v = EFFECT_VOICECHANGE_PITCHSHIFT; audio_voice_changer_update_parm(voice_changer_name, &parm); break; case VOICE_CHANGER_DONALD_DUCK://唐老鸭 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 60; parm.formant_shift = 170; parm.effect_v = EFFECT_VOICECHANGE_CARTOON; audio_voice_changer_update_parm(voice_changer_name, &parm); break; case VOICE_CHANGER_MINIONS://小黄人 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 50; parm.formant_shift = 60; parm.effect_v = EFFECT_VOICECHANGE_CARTOON; audio_voice_changer_update_parm(voice_changer_name, &parm); break; case VOICE_CHANGER_ROBOT://机器音 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 70; parm.formant_shift = 80; parm.effect_v = EFFECT_VOICECHANGE_ROBORT; audio_voice_changer_update_parm(voice_changer_name, &parm); break; case VOICE_CHANGER_WHISPER://气音 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 70; parm.formant_shift = 80; parm.effect_v = EFFECT_VOICECHANGE_WHISPER; audio_voice_changer_update_parm(voice_changer_name, &parm); break; case VOICE_CHANGER_MELODY://固定旋律音 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 70; parm.formant_shift = 80; parm.effect_v = EFFECT_VOICECHANGE_MELODY; audio_voice_changer_update_parm(voice_changer_name, &parm); break; case VOICE_CHANGER_FEEDBACK://调制音 audio_voice_changer_bypass(voice_changer_name, RUN_NORMAL); parm.shiftv = 150; parm.formant_shift = 80; parm.effect_v = EFFECT_VOICECHANGE_FEEDBACK; audio_voice_changer_update_parm(voice_changer_name, &parm); break; default: break; } }
有兴趣自行下载
|