ESP32使用DAC(Arduino)

介绍

本文展示了在Arduino环境下ESP32的DAC的使用。
ESP32有2路8位DAC,其中DAC1在PIN25,DAC2在PIN26,DAC引脚由于是模拟引脚,因此无法通过IO_MUX映射。
Arduino库提供了 dacWrite(uint8_t pin, uint8_t value) 这个函数,只需要传入引脚号(25或26)以及8位的输出设定值即可。
ESP32还能通过I2S将数据连续输出到DAC,这在DAC播放音频时十分有用,这种方法详见我的另一篇文章:ESP32使用I2S及I2S输出到DAC(Arduino)
还有一些高级用法,需要IDF库,可参考ESP-IDF编程指南DAC章节

函数实现和简化

使用 dacWrite 函数是最方便的方法,但该函数封装得比较完备或者说复杂,因此速度可能会牺牲一些,此函数位于 esp32-hal-dac.c 中(路径在Arduino放开发板包的文件夹里的:\esp32\hardware\esp32\1.0.6\cores\esp32,其中1.0.6是版本,我这里的可能偏旧一点),函数实现如下:

void IRAM_ATTR __dacWrite(uint8_t pin, uint8_t value)
{
   
    if(pin < 25 || pin > 26){
   
        return;//not dac pin
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值