完善资料让更多小伙伴认识你,还能领取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位音频数据。 请注意,具体的寄存器名称和位设置可能因不同的硬件平台和软件库而有所不同。请根据您的具体硬件和软件环境进行相应的调整。 |
|
|
|
只有小组成员才能发言,加入小组>>
486 浏览 1 评论
552浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
443浏览 5评论
445浏览 4评论
415浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 21:14 , Processed in 0.717914 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号