- 博客(19)
- 收藏
- 关注
原创 嵌入式音频开发笔记——ALSA-Lib常用音频接口函数
摘要:本文系统介绍了ALSA音频库中PCM设备操作的核心函数,包括snd_pcm_open、snd_pcm_hw_params系列函数、snd_pcm_readi/writei等I/O函数以及资源管理函数。重点阐述了设备初始化、参数配置、数据读写和错误恢复等关键流程,详细分析了各函数的参数、返回值和使用注意事项,并提供了典型应用场景和代码示例。文章还对比了不同访问模式的特点,讨论了常见问题的解决方案,为ALSA音频编程提供了全面的技术参考。
2025-07-28 15:02:35
424
原创 嵌入式音频开发笔记——PCM编码与WAV音频文件格式详解
本文系统介绍了音频信号采集与存储的核心技术。首先详细讲解了PCM的原理,包括采样、量化和编码三个关键步骤,重点分析了采样率、量化位等对音质的影响。其次深入剖析了WAV文件格式的RIFF结构,详细说明了RIFF头、fmt子块和data子块的具体组成和字段含义。最后通过实际代码示例展示了WAV文件头的定义和初始化方法,并分析了立体声数据在WAV文件中的存储方式。文章还通过Windows XP启动音实例,演示了如何解析WAV文件头信息并验证其音频参数。全文从理论到实践,阐述了音频数字化和和WAV文件格式的技术要点
2025-07-28 11:34:24
696
原创 QT串口发数据为什么不能使用QTimer::singleShot(500, [this]() {};这个方式去延时,以确保指令发送完成
是基于事件循环的非阻塞延时方法,它允许事件循环在等待期间继续处理其他事件,这对于GUI应用来说是友好的,因为它不会冻结界面。然而,在串口通信中,特别是在发送大量数据或需要确保数据完整性时,可能需要一个同步的阻塞调用来确保数据完全发送出去。可能会导致对串口状态的多次检查和数据发送,这在多线程环境中可能会引起资源竞争和状态管理问题,尤其是在需要精确控制数据流的场景中。因此,在串口通信中,为了保证数据的完整性和发送的可靠性,通常推荐使用同步方法,如。的线程中使用它,会导致错误。:串口数据发送通常是异步的,
2025-02-25 15:24:30
235
原创 C++数组赋值错误与返回数组的函数总结
推荐使用标准容器(如或std::array),因它们提供安全性和灵活性。若需手动管理,使用指针时务必避免悬垂指针。
2025-02-20 14:04:25
186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人