当前位置: 首页 > news >正文

免费建设网站软件下载wordpress瀑布流插件

免费建设网站软件下载,wordpress瀑布流插件,dedecms如何做音乐网站,揭阳装修网站建设IS(Inter-IC Sound) 是一种专用于数字音频传输的串行总线标准,广泛用于微控制器(如 ESP32)与音频 DAC(如 PCM5102)之间传输音频数据。 I2S 主要信号线 ESP32 I2S 与 PCM5102 示例连接 (PCM510…
  • I²S(Inter-IC Sound) 是一种专用于数字音频传输的串行总线标准,广泛用于微控制器(如 ESP32)与音频 DAC(如 PCM5102)之间传输音频数据。

I2S 主要信号线

  • ESP32 I2S 与 PCM5102 示例连接 (PCM5102、PCM510xA I2S音频协议 DAC芯片 & PCM5102模块与接线说明)
信号线名称全称/别名功能描述
BCLKBit Clock / SCK每一位数据的时钟,用于数据同步
LRCLKLeft-Right Clock / WS左右声道选择,High 表示右声道,Low 表示左声道
DATASerial Data / SD / DIN音频的实际数据流
MCLKMaster Clock (可选)主系统时钟(部分 DAC 可不接,PCM5102 内置 PLL 可省略)

在这里插入图片描述

上传 wav到 SPIFFS(Thonny)

  1. 打开 视图 > 文件
  2. 拖拽 ***.wav 到 MicroPython 设备(根目录)
  3. 等待上传成功

在这里插入图片描述

python函数接口说明

# https://github.com/micropython/micropython/blob/master/ports/esp32/machine_i2s.cfrom machine import I2S, Pinaudio = I2S(0,sck=Pin(9),ws=Pin(10),sd=Pin(11),mode=I2S.TX,bits=16,format=I2S.STEREO,rate=16000,ibuf=40000
)
函数/参数说明
I2S(id, **kwargs)创建 I2S 对象。id 一般为 01,参数通过关键字传入。
idI2S 外设编号。ESP32 通常支持 01(部分板子支持 2)。
sck / bckBit Clock(位时钟)引脚,接到 DAC 的 BCK 引脚。
ws / lrckWord Select / LRCK 引脚,接到 DAC 的 LCK 引脚。
sdSerial Data,引脚接到 DAC 的 DIN
modeI2S.TX(发送)或 I2S.RX(接收)。
bits采样精度,常用值为 162432。需与 WAV 文件位深一致。
format通道格式:I2S.MONOI2S.STEREO
rate采样率(Hz),例如 16000、44100、48000 等。需与音频文件一致。
ibuf内部缓冲区大小(字节),越大越平稳但占用 RAM。

CODE实现

from machine import Pin, I2S
import ustruct
import time# ======== 配置 I2S ========
SCK_PIN = 9   # Bit Clock (BCK)
WS_PIN  = 10   # Word Select (LRCK)
SD_PIN  = 11   # Data (DIN)audio_out = I2S(0,                         # I2S peripheral IDsck=Pin(SCK_PIN),ws=Pin(WS_PIN),sd=Pin(SD_PIN),mode=I2S.TX,bits=16,format=I2S.STEREO,         # I2S.STEREO 或 I2S.MONO,取决于 WAV 文件rate=16000,                # 与音频采样率一致ibuf=40000
)
# ===========================# # ======== 解析 WAV 头部并跳过 ========
# def skip_wav_header(f):
#     # 跳过 WAV 文件头部,找到数据段
#     while True:
#         chunk_id = f.read(4)
#         if chunk_id == b'data':
#             data_size = ustruct.unpack('<I', f.read(4))[0]
#             return data_size
#         else:
#             f.read(ustruct.unpack('<I', f.read(4))[0])import ustructdef skip_wav_header(f):# Read RIFF headerif f.read(4) != b'RIFF':raise ValueError('Invalid WAV file: missing RIFF')f.read(4)  # Chunk sizeif f.read(4) != b'WAVE':raise ValueError('Invalid WAV file: missing WAVE')# Search for 'data' chunkwhile True:chunk_id = f.read(4)if len(chunk_id) < 4:raise ValueError("Reached end of file before finding 'data' chunk")chunk_size_bytes = f.read(4)if len(chunk_size_bytes) < 4:raise ValueError("Corrupted WAV file")chunk_size = ustruct.unpack('<I', chunk_size_bytes)[0]if chunk_id == b'data':return chunk_size  # return data sizeelse:# skip over this chunkf.read(chunk_size)# ======== 播放 WAV 文件 ========
wav_file = "/music-16k-16bits-mono.wav"with open(wav_file, "rb") as f:
#     header = f.read(44)  # 假设标准 44 字节 WAV header
#     data_size = skip_wav_header(f)
#     print("Data size:", data_size)data_size = skip_wav_header(f)  # 不要再提前读 44 字节print("Data size:", data_size)# 循环读取并播放音频数据while True:wav_data = f.read(1024)if not wav_data:breakaudio_out.write(wav_data)# ======== 释放 I2S ========
audio_out.deinit()
http://www.yayakq.cn/news/134312/

相关文章:

  • 广告平面设计网站最便宜网站建设
  • 网站开发存在的问题个人养老保险怎么买合适
  • 网站模板一样侵权吗做网站模板平台
  • 企业网站建设的文献广告设计图网站
  • 建设一网站有什么用英文网站建设解决方案
  • 深圳装饰网站建设工作期间员工花钱做的网站
  • 如何把自己的网站推广软件开发网站有哪些
  • 哪些网站是响应式的四川展厅设计公司
  • 网站无icp备案网站开发职业
  • 阿联酋网站后缀石家庄酒店网站建设
  • 建设银行泰安分行网站加强信息管理 维护网站建设
  • 企业公司网站模板下载wordpress自带小工具
  • 麦积区城乡建设局网站重庆市建设局网站
  • 网站seo优化多少钱网页设计跳转链接怎么制作
  • 网站开发做什么销售网站建设推广
  • 廊坊网站建设搭建专业建站分销商城
  • 山西建设厅网站2016年3号文件无锡网页制作公司
  • 太仓市质监站网址网络推广品牌营销公司
  • 上海网站建设微信开发档案门户网站建设方案
  • 装修设计图免费软件重庆做网络优化公司电话
  • 自己做提卡网站静态网站管理系统
  • 万博法务网站建设项目开发一个聊天app
  • 建设网站一般需要多少钱惠州网站制作案例
  • 做网站运营需要什么证如何找到能够建设网站的人
  • 北京多语言网站建设有哪些平台网站是做废钢的
  • 紫竹桥网站建设wordpress的memcached
  • 昆明做网站哪家便宜网站过场动画
  • 建立网站wordpress北京网站建设模板下载
  • 网站版权 备案icp漯河网站seo
  • 免费建设一个可以访问的网站购物网站开发 项目描述