【富芮坤FR3068x-C】+语音数据采集与USB保存代码阅读

之前使用操作系统win7,使用官方给的驱动,还是不能正常编译下载,后来有测评说使用win10可以,所以在win10系统中安装了keil5.36(推荐的版本)

还要安装pack包:

202550ihu7s404xno74klx

还要安装python编译环境,注意:这里编译后会运行一个 python 脚本打包固件信息,所以需要电脑上提前安装了 python 环境才行,安装最新版本,参考网上教程即可,这里不在赘述。

202550x8d84jffrb4841gd

打开一个实例工程,点击编译按钮,编译成功后会在工程的 output 目录下生成 Project_burn.bin 文件,这个文件就是我们要烧录到芯片的应用程序。 要注意在同一目录下还有一个Project.bin 文件,下载到芯片的是Project_burn.bin文件。在下载时要注意:usb和debug都要接上,点选FR300X和自动烧录、自动重启,加载烧录文件之后需要按下开发板上rst按键,程序才会烧录到芯片!!下载了几个demo进行实验,这是实验结果,开发板不断发送数据到串口调试端:

202550y8bsob7v9ac7c7mh

学习使用的难点在于没有库函数的详细说明,比如在使用数字麦克风时:

bool Porting_Mic_fifo_status(void)

{

    if (__PDM_IS_FIFO_ALMOST_FULL(hpdm.PDMx))

        return 1;

    else

        return 0;

}

__PDM_IS_FIFO_ALMOST_FULL这个函数没法直接跳转,还是使用搜索功能找到定义出处:

#define __PDM_IS_FIFO_ALMOST_FULL(__PDMx__)              (__PDMx__->INT_RAW_STA.FF_AFULL)

首先PDM是什么?查找数据手册文档:

202557nzdstrxtaj20jx0k

202557bek7kt75ko5wkkoz

202557ax4aalp9lco4d44x

找到原始中断状态寄存器定义处,再才理解该函数实现过程。没有详细库函数说明,只能自己查阅手册进行学习理解。

202601h1myy7k1mt5kvne2

说明可以通过麦克风采集语音数据保存到缓存中,再输出到AUDIO;在这个实例demo中是将语音从PDM采集保存到USB接的存储设备中:

202601h6bu6lbkk65oxkce

采集的语音还可以通过音频调制器(PSD_DAC)进行输出,如果外接了喇叭就可以外放语音了,关键函数是:

202601sc43v4s5v0peqlts

找到音频调制器函数:

202607i58tz4g5yq8g75nn

找到关键语句:

/* write fifo */

#define __PSD_DAC_WRITE_FIFO_DATA_LEFT(__DATA__)   (PSD_DAC->DACDataL = __DATA__)

#define __PSD_DAC_WRITE_FIFO_DATA_RIGHT(__DATA__)  (PSD_DAC->DACDataR = __DATA__)

查看PSD_DAC工作原理:

202607if0f3bj30mm2109l

PSD_DAC->DACDataL,需要查阅手册看看这个寄存器作用:

202607e76595u5qyiofrpf

这个demo可以完成任务如下:将语音从数字麦克风采集,再保存到USB存储设备,也可以调用函数输出到音频调制接口,由于假期没有示波器所以只能分析代码了。