完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在寄存器I2SCONF位中,12-15 表示每 16 位之后移出的额外位数。但是,使用 4 位时,我无法将其设置为 16,而 32 位样本中的 24 位音频数据将需要 16 位。I2S_FIFO_CONF寄存器的第 16-18 位的 Rx FIFO 模式设置为 2 (= 每通道 24 位,全数据中断)。从从ADC接收的数据来看,当我将I2S_BITS_MOD设置为15时,似乎丢失了最高有效位。
如何设置 I2S 寄存器以接收 32 位字的 24 位音频数据? |
|
相关推荐
1个回答
|
|
要设置I2S寄存器以接收32位字的24位音频数据,您需要按照以下步骤操作:
1. 首先,确保您的硬件和软件环境已经正确配置,以支持I2S通信。 2. 设置I2SCONF寄存器。在I2SCONF寄存器的12-15位中,您可以设置每16位之后移出的额外位数。由于您需要接收24位音频数据,您可以将这些位设置为8(二进制为1000),这样每16位之后将移出8位。这将确保您接收到24位音频数据。 I2SCONF |= (8 << 12); 3. 设置I2S_FIFO_CONF寄存器。在I2S_FIFO_CONF寄存器的16-18位中,您可以设置Rx FIFO模式。根据您的描述,您希望将其设置为2(每通道24位,全数据中断)。这将确保FIFO在接收到完整的24位音频数据时触发中断。 I2S_FIFO_CONF |= (2 << 16); 4. 设置I2S_BITS_MOD寄存器。这个寄存器用于设置每个通道的位宽。由于您需要接收24位音频数据,您可以将这个寄存器设置为23(二进制为10111),这样每个通道将有24位数据。 I2S_BITS_MOD |= 23; 5. 确保其他I2S寄存器(如I2S_SCLK_CONF、I2S_TX_FIFO_MOD和I2S_RX_FIFO_MOD)已根据您的硬件和软件需求正确配置。 6. 启动I2S接收。在配置完所有寄存器后,您可以启动I2S接收过程,以便开始接收32位字的24位音频数据。 请注意,具体的寄存器名称和位设置可能因不同的硬件平台和软件库而有所不同。请根据您的具体硬件和软件环境进行相应的调整。 |
|
|
|
只有小组成员才能发言,加入小组>>
198个成员聚集在这个小组
加入小组483 浏览 1 评论
1786 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
385浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
177浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
223浏览 2评论
用AT+CIPSNTPCFG=1,8,\"cn.ntp.org.cn\",\"ntp.sjtu.edu.cn\"更新不了时间怎么处理?
575浏览 2评论
268浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-6 21:25 , Processed in 0.911523 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191