LuatOS-SOC接口文档(air780E)-- i2s - 数字音频

示例

-- 这个库属于底层适配库, 具体用法请查阅示例
-- demo/multimedia
-- demo/tts
-- demo/record

常量

常量

类型

解释

i2s.MODE_I2S

number

I2S标准,比如ES7149

i2s.MODE_LSB

number

LSB格式

i2s.MODE_MSB

number

MSB格式,比如TM8211

i2s.setup(id, mode, sample, bitw, channel, format, mclk)

初始化i2s

参数

传入值类型

解释

int

i2s通道号,与具体设备有关

int

模式, 当前仅支持0, MASTER|TX|RX 模式, 暂不支持slave. 可选

int

采样率,默认44100. 可选

int

数据位数,默认16, 可以是8的倍数

int

声道, 0 左声道, 1 右声道, 2 双声道. 可选

int

格式, 可选MODE_I2S, MODE_LSB, MODE_MSB

int

mclk频率, 默认 8M. 可选

返回值

返回值类型

解释

boolean

成功与否

int

底层返回值

例子

-- 以默认参数初始化i2s
i2s.setup(0)
-- 以详细参数初始化i2s, 示例为默认值
i2s.setup(0, 0, 44100, 16, 0, 0, 8000000)

i2s.send(id, data, len)

发送i2s数据

参数

传入值类型

解释

int

通道id

string

数据, 可以是字符串或zbuff

int

数据长度,单位字节, 字符串默认为字符串全长, zbuff默认为指针位置

返回值

返回值类型

解释

boolean

成功与否

int

底层返回值,供调试用

例子

local f = io.open("/luadb/abc.wav")
while 1 do
    local data = f:read(4096)
    if not data or #data == 0 then
        break
    end
    i2s.send(0, data)
    sys.wait(100)
end

i2s.recv(id, buffer, len)

接收i2s数据,注意在数据在回调时已经存放在zbuff里,目前只有air780e系列支持

参数

传入值类型

解释

int

通道id

zbuff

数据缓存区

int

单次返回的数据长度,单位字节,必须与传入的zbuff的大小一致

返回值

返回值类型

解释

boolean

成功与否

例子

local buffer = zbuff.create(3200)
local succ = i2s.recv(0, buffer, 3200);

i2s.close(id)

关闭i2s

参数

传入值类型

解释

int

通道id

返回值

返回值类型

解释

nil

无返回值

例子

i2s.close(0)

i2s.on(id, func)

注册I2S事件回调

参数

传入值类型

解释

int

i2s id, i2s0写0, i2s1写1

function

回调方法

返回值

返回值类型

解释

nil

无返回值

例子

i2s.on(0, function(id, buff)
	if buff then
		log.info("i2s get data in zbuff")
	else
		log.info("i2s tx one block done")
	end
end)

i2s.txStat(id)

获取i2s的发送缓冲区状态

参数

传入值类型

解释

int

i2s id, i2s0写0, i2s1写1

return

底层缓冲区的总大小

return

底层缓冲区的剩余待发送数据

返回值

例子

-- 读取发送缓冲区的状态, 从而判断是否需要继续传入音频数据
local max, remain = i2s.txStat(0)
log.info("i2s发送缓冲区状态", max, remain)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DE1-SoC是一款由英特尔公司开发的强大而灵活的系统级开发平台。它集成了一系列功能强大的硬件和软件,用于实现高性能和多功能的嵌入式系统设计。 首先,在硬件方面,DE1-SoC配备了一颗高性能的Cyclone V SoC FPGA芯片。这个芯片基于ARM架构,集成了双核ARM Cortex-A9处理器,可以提供高性能的计算能力和低功耗的处理效率。同时,它还集成了一个丰富的外设,例如HDMI接口、SD卡插槽、以太网接口等,这些外设可以满足各种不同应用的需求。 其次,在软件方面,DE1-SoC提供了丰富的软件开发工具和支持。它支持使用Quartus Prime软件进行FPGA设计和编程,以及使用ARM开发工具链进行软件开发。这些工具可以帮助开发者进行FPGA逻辑设计和ARM软件开发,并提供了丰富的开发资源和示例代码。 此外,DE1-SoC还提供了大量的配套资料,用于帮助用户更好地了解和使用这个开发平台。配套资料包括用户手册、技术规格、设计例程、实验指导等,这些资料详细介绍了DE1-SoC的硬件和软件配置,以及如何进行基本的开发和调试。 总的来说,DE1-SoC是一款功能强大的嵌入式系统开发平台,它提供了高性能的硬件和丰富的软件开发工具,以及详细的配套资料,可以帮助开发者快速进行FPGA和ARM的开发。无论是学习嵌入式系统设计还是进行商业项目开发,DE1-SoC都是一个理想的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l531798151

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值