这里我描述了标准SPI(串行协议接口)和TIMER外设如何能够模拟I2S接口。在这里原理我就不赘述了,大家可以去官网下载资料查看,当时我就是按照资料上介绍的做的试验。
当时我用的采样频率是48KHZ,系统位数为16bit,通道数为2,根据计算公式I2S BITRATE = SAMPLE RATE × WIDTH × CHANNEL = 48000 × 16 × 2 = 1.536 Mbit/s.硬件连接如下图所示:
当时我使用UART进行的异步音频传输。使用UART流控制来管理数据交换机制,这样可以避免任何数据包丢失。如下所示:
UART外设参数按照如下进行的配置:
UartHandle.Instance = USARTx;
UartHandle.Init.BaudRate = 460800;
UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
UartHandle.Init.StopBits = UART_STOPBITS_1;
UartHandle.Init.Parity = UART_PARITY_NONE;
UartHandle.Init.HwFlowCtl = UART_HWCONTROL_RTS_CTS;
UartHandle.Init.Mode = UART_MODE_TX_RX;
上位机软件可以自己编写或者使用线程软件,官网文档中推荐的是Tera Term软件,需要注意的就是上位机的配置应与STM32 UART外设设置保持一致。
|