gpt4 book ai didi

c - 使用 UART 检查从 SPH0645 Mic I2S 协议(protocol)接收的数据

转载 作者:太空宇宙 更新时间:2023-11-04 04:11:01 24 4
gpt4 key购买 nike

我正在尝试将这些 SPH0645 麦克风 (I2S) 连接到 STM32f767ZI 板。

我已正确接线,现在只是尝试通过 UART 将数据传递到我的电脑来测试麦克风。希望有人能指出我正确的方向。

我试过直接传递到 UART 传输。但是我认为我可能需要一些数据处理 - 我正在从 UART 接收,但有时只是 0 或其他时候只是乱码,这不是来自麦克风,因为即使我断开麦克风,它仍然在传输。

I2S 麦克风在 32 位帧中接收 24 位数据,最后 8 位是垃圾。该协议(protocol)是 Big Endian,我认为 HAL 库可以处理此问题,但我不完全确定。

uint16_t data;
while (1)
{
/* USER CODE END WHILE */
HAL_StatusTypeDef result= HAL_I2S_Receive(&hi2s1,&data,2,100);

HAL_UART_Transmit(&huart3,&data,2,100);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}

我错过了什么?

最佳答案

  1. 检查HAL_I2S_Receive(&hi2s1, &data, 1, 100)的返回值

  2. 您是否验证了 HAL_I2S_Receive 期望 uint32_t* 作为第二个参数?我认为它应该期待 uint16_t*

  3. 使用 HAL_UART_Transmit 您希望通过 UART 传输数据。您不应该将 data 作为参数传递给 HAL_UART_Transmit 吗?

关于c - 使用 UART 检查从 SPH0645 Mic I2S 协议(protocol)接收的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57351731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com