如何使用pwm.h
How to use pwm.h
如何使用 ESP8266 库 pwm.h?如果我只是将库包含在我的 arduino 项目中,我会得到一个错误:undefined reference to pwm_init
我需要一个 40khz 的正弦波用于超声波传感器,analogWrite 在高频下工作不好。
抱歉,如果答案很明显,我已经用谷歌搜索了几个小时,但找不到任何有用的东西。
编辑
我认为这是正确的pwm.c file。我必须把它放在哪里?我尝试仅将此文件添加到我的项目中,但它不起作用。我猜它依赖于该库中的其他文件。但是我如何将 C 库添加到 arduino 项目中呢?如果有头文件,为什么它还没有包含在 ESP8266 核心库中 pwm.h?
libpwm.a
是ESP8266 SDK的一部分,如果你安装了ESP8266 Addon With the Arduino Boards Manager,这个库应该在:
.arduino15/packages/esp8266/hardware/esp8266/<SDK Version>/tools/sdk/lib/libpwm.a
为了使用 PWM,您应该在您的草图中包含 pwm.h
强制 C 修饰:
extern "C" {
#include "pwm.h"
}
然后为了 link 和 libpwm.a
你应该自定义 link 命令创建自定义平台配置文件 .arduino15/packages/esp8266/hardware/esp8266/<SDK Version>/platform.local.txt
,添加
compiler.c.elf.extra_flags=-lpwm
你也可以在plateform配置文件中加入这一行.arduino15/packages/esp8266/hardware/esp8266/<SDK Version>/platform.txt
如何使用 ESP8266 库 pwm.h?如果我只是将库包含在我的 arduino 项目中,我会得到一个错误:undefined reference to pwm_init
我需要一个 40khz 的正弦波用于超声波传感器,analogWrite 在高频下工作不好。
抱歉,如果答案很明显,我已经用谷歌搜索了几个小时,但找不到任何有用的东西。
编辑
我认为这是正确的pwm.c file。我必须把它放在哪里?我尝试仅将此文件添加到我的项目中,但它不起作用。我猜它依赖于该库中的其他文件。但是我如何将 C 库添加到 arduino 项目中呢?如果有头文件,为什么它还没有包含在 ESP8266 核心库中 pwm.h?
libpwm.a
是ESP8266 SDK的一部分,如果你安装了ESP8266 Addon With the Arduino Boards Manager,这个库应该在:
.arduino15/packages/esp8266/hardware/esp8266/<SDK Version>/tools/sdk/lib/libpwm.a
为了使用 PWM,您应该在您的草图中包含 pwm.h
强制 C 修饰:
extern "C" {
#include "pwm.h"
}
然后为了 link 和 libpwm.a
你应该自定义 link 命令创建自定义平台配置文件 .arduino15/packages/esp8266/hardware/esp8266/<SDK Version>/platform.local.txt
,添加
compiler.c.elf.extra_flags=-lpwm
你也可以在plateform配置文件中加入这一行.arduino15/packages/esp8266/hardware/esp8266/<SDK Version>/platform.txt