完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
上述代码,printf打印出来的数字经常有nan(aux in输入的音频信号),如果我把float 改成int16_t就没有问题了,但是我后续的数据处理精度需要是float数据类型,谁能给解答一下?i2s_read返回的到底是整形还是浮点数? 打印的内容如下:
|
|
相关推荐
1个回答
|
|
是的,i2s_read返回的内存指针可以是float类型的数组。但是,您提供的代码有一些语法错误。以下是修改后的代码:
```c #define I2S_READLEN 200 float i2s_buffer_read[I2S_READLEN]; float i2s_buffer_write[I2S_READLEN]; while (true) { size_t i2s_bytes_read; i2s_bytes_read = I2S_READLEN; i2s_read(I2S_NUM, i2s_buffer_read, I2S_READLEN, &i2s_bytes_read, 100); /* left channel filter */ } ``` 这里,我做了以下修改: 1. 将`float i2s_buffer_read[I2S_READLEN;`和`float i2s_buffer_write[I2S_READLEN;`中的分号`;`更改为大括号`]`。 2. 在`i2s_read`函数调用中,将`&i2s_bytes_read`更改为`&i2s_bytes_read`。 现在,您的代码应该可以正常工作。i2s_read函数将从I2S接口读取数据到float类型的数组`i2s_buffer_read`中。您可以在while循环中添加对`i2s_buffer_read`数组的进一步处理,例如滤波或其他信号处理。 |
|
|
|
只有小组成员才能发言,加入小组>>
165个成员聚集在这个小组
加入小组1143 浏览 1 评论
582浏览 6评论
480浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
464浏览 5评论
466浏览 4评论
441浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 12:41 , Processed in 0.724443 second(s), Total 49, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号