OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3373|回复: 3

关于探索者录音机实验的代码

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-4-10
在线时间
3 小时
发表于 2018-4-24 16:48:13 | 显示全部楼层 |阅读模式
10金钱
最近一直在学习录音机实验, 代码部分遇到好几个问题:
1、recorder.c程序中定义了一个8位的全局变量rec_sta用来表示录音状态,它作为一个变量应该是假定高位表示是否开启录音,低位表示是否暂停录音,但在如下代码中要关闭录音只令变量rec_sta=0,可不明白的是原理上(实际上)是如何关闭录音的呢?没看到哪有关闭录音的操作啊,要是rec_sta是一个寄存器那还好理解,可他应该只是一个变量。
                                        case KEY2_PRES:        //STOP&SAVE
                                        if(rec_sta&0X80)//有录音
                                        {
                                                rec_sta=0;        //关闭录音
                                                wavhead->riff.ChunkSize=wavsize+36;                //整个文件的大小-8;
                                           wavhead->data.ChunkSize=wavsize;                //数据大小
2.如上代码,wavsize的大小不知在哪计算出来的,进入录音状态后调用了录音 I2S_DMA接收中断服务函数,里面有一句“wavsize+=I2S_RX_DMA_BUF_SIZE;”可这也不是计算wavsize吧,看不懂还请大家开导开导
3.进入录音状态函数recoder_enter_rec_mode中这行代码表示回调函数指针指向rec_i2s_dma_rx_callback函数的首地址,即"i2s_rx_callback=rec_i2s_dma_rx_callback;"那么每当一个缓冲接数据满了,硬件自动切换为下一个缓冲,同时进入中断服务函数,将已满缓冲的数据写入 SD 卡的 wav 文件, 就应该调用一次中断服务函数啊,可是在别处并没有再见函数指针i2s_rx_callback,不知道它是如何工作的?
以上就是我的问题,请会的兄台教教我.拜谢



最佳答案

查看完整内容[请看2#楼]

把整个代码看完先! 1,关闭录音就是不往SD卡写数据,就算关闭/暂停录音。继续写就是继续录音。实际上8978是一直在录音的。 2,wavsize+=I2S_RX_DMA_BUF_SIZE,还不算计算?慢慢的增大。 3,在中断服务函数即可。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-4-24 16:48:14 | 显示全部楼层
把整个代码看完先!
1,关闭录音就是不往SD卡写数据,就算关闭/暂停录音。继续写就是继续录音。实际上8978是一直在录音的。
2,wavsize+=I2S_RX_DMA_BUF_SIZE,还不算计算?慢慢的增大。
3,在中断服务函数即可。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-4-10
在线时间
3 小时
 楼主| 发表于 2018-4-25 09:01:55 | 显示全部楼层
嗯嗯,谢谢站长亲自讲解,现在懂了一些。还有能不能给我简单讲讲数据流的传输过程啊?
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-4-10
在线时间
3 小时
 楼主| 发表于 2018-4-25 09:10:52 | 显示全部楼层
还有内部内存池SRAMIN是在SPI FLASH中吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 05:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表