设备之间的 I2C 和串行通信

I2C and Serial communication between devices

我正在使用 python 插座将我的 PC 连接到蓝牙 HC-05 模块。我想通过将 wav 文件转换为字符串数组来将音乐发送到 HC-05,该数组稍后将在 arduino 上转换为 0-65535 范围内的整数。 arduino 和 HC-05 通过串口以 9600 波特进行通信。然后这些整数将通过 I2C 传递到 DAC。我想知道从我的 PC 发送大量字符串是否可能存在内存问题。是否有可能由于设备之间 sending/receiving 数据的不同速率而导致声音的原始质量失真?还是声音信号会在 DAC 上延迟?

The arduino and HC-05 communicate via serial at 9600 baud.

这将太低而无法用于音频。

9600 波特每秒提供 7680 位数据。在每个样本 16 位时,您看到的是 481 Hz 的采样率,这对于可理解的音频来说太低了。它几乎不足以重现声音。

您需要:

  1. 提高波特率。理想情况下,您需要至少 57600 波特,用于 46 kbit/sec 数据。如果可以使用更高的波特率,请使用它们。

  2. 每个样本使用更少的位。在 56 kbaud 下对每个样本使用 4 位将为您提供 11.5 kHz 的可观采样率。音频在 4 位时听起来有点细小,但可以理解。