这个是不久前弄的一个功能,在开发板处理OK了,但是由于芯片内部空间不够,移植到芯片有问题,应该是退出的时候处理不够完全,但是客户并没有这个需求,所以并没有去修改。
更改录音后缀的方法:
record.c 中
#define REC_WAV 0 //录WAV文件
#define REC_MP3 1 //录MP3文件
///K歌宝录音,只支持WAV
#define REC_FILE_TYPE REC_WAV
更改录音文件夹的名字:
record.c 中
const char rec_folder_name[8] = "/record"; //录音文件夹 //仅支持一层目录
#if REC_FILE_TYPE
const char rec_file_name[21] = "/record/FILE0000.MP3"; //MP3录音文件名(含路径)
#else
const char rec_file_name[21] = "/record/FILE0000.WAV"; //ADPCM录音文件名(含路径)
#endif
另外我们还需要将宏定义打开:
sdk_cfg.c 中
#define SPI1_EN 1 ///<外挂flash使能
#define SPI_REC_EN 1 ///<外挂flash录音使能
#define SCRIPT_REC_EN 1 ///<录音模式开机宏
在main函数中添加跳转到录音线程的操作:
main.c 中
case MSG_RECORD_WORKMOD://录音模式
script_switch(SCRIPT_ID_REC, 0);
break;
由于开发板是由底板加核心板的模式,因此我们需要接一根线到录音的模块,在程序中修改如下:
dev_ctl.c 中
void spi1_cs_api(u8 cs)
{
/* JL_PORTB->DIR&= ~BIT(9); */
/* cs ? (JL_PORTB->OUT |= BIT(9)) : (JL_PORTB->OUT &= ~BIT(9)); */
JL_PORTB->DIR |= BIT(13);//使能 |= :0,输出,1输入
JL_PORTB->DIE |= BIT(13);
JL_PORTB->OUT |= BIT(13);
JL_PORTB->PU &= ~BIT(13);
JL_PORTB->PD &= ~BIT(13);
delay(10);
} // 这里修改芯片接线引脚为PB13
//这样设置之后开发板就可以实现录音功能了。
芯片的PA3和PB13共用,因此PA3会对PB13的设置产生影响,消除方法如下:
在main函数的while(1) 前添加
JL_PORTA->PD &=~BIT(3);
添加完成即可。