#include <M5Stack.h>
void setup() {
M5.begin();
M5.Power.begin();
M5.Lcd.setTextSize(2);
void loop() {
M5.Lcd.printf("Read value:%d\n", digitalRead(39));
delay(500);
digitalWrite
功能:
向引脚写入值
函数原型:
void digitalWrite(uint8_t pin, uint8_t val);
注意:
1.如果引脚模式未设置为OUTPUT,则不会返回正确的结果
2.请注意,如果控制线中有其他电路,则可能会造成物理损坏
使用示例:
#include <M5Stack.h>
void setup() {
M5.begin();
M5.Power.begin();
M5.Lcd.setTextSize(2);
pinMode(16, OUTPUT);
void loop() {
M5.update();
M5.Lcd.printf("Read value:%d\n", digitalRead(16));
delay(500);
analogRead
功能:
读取模拟引脚的值
函数原型:
uint16_t analogRead(uint8_t pin);
返回值:
阅读结果响应的最大值由analogSetWidth()确定
使用示例:
#include <M5Stack.h>
void setup() {
M5.begin();
M5.Power.begin();
M5.Lcd.setTextSize(2);
void loop() {
M5.Lcd.printf("Read value:%d\n", analogRead(35));
delay(500);
dacWrite
功能:
dac输出到指定引脚
函数原型:
void dacWrite(uint8_t pin, uint8_t value);
注意:
1.使用前请先将引脚模式设置为OUTPUT
2.G25和G26可用于M5Stack
使用示例:
#include <M5Stack.h>
void setup() {
M5.begin();
M5.Power.begin();
M5.Lcd.setTextSize(2);
pinMode(25, OUTPUT);
void loop() {
dacWrite(25,0x40);
delay(500);
ledcSetup
功能:
设置占空比输出
函数原型:
double ledcSetup(uint8_t channel, double freq, uint8_t resolution_bits);
返回值:
实际输出频率
注意:
通道和GPIO端口号不相同它应该被识别为用于存储设置的数字
ledcAttachPin
功能:
绑定引脚至指定 ledc 通道
函数原型:
void ledcAttachPin(uint8_t pin, uint8_t chan);
channel |
uint8 |
channel (0~15) |
double |
frequency (Hz) |
resolution_bits |
uint8_t |
占空比指示的满量程位数 |
ledcWrite
功能:
输出具有指定的占空比值
函数原型:
void ledcWrite(uint8_t chan, uint32_t duty);
注意:
1.占空比取决于初始化时设置的位比例,使用8位指定时,指定0xFF会导致100%输出
使用示例:
#include <M5Stack.h>
uint8_t pin = 25;
void setup() {
M5.begin();
M5.Power.begin();
double f = ledcSetup(1, 1000, 10);
Serial.printf("F=%.0f\n",f);
ledcAttachPin(pin,1);
ledcWrite(1, 511);
void loop() {
delay(100);
ledcDetachPin
功能:
释放指定的端口并停止输出
函数原型:
void ledcDetachPin(uint8_t pin);
uint8_t |
渠道(0~15) |
uint32_t |
使用示例:
#include <M5Stack.h>
uint8_t pin = 25;
void setup() {
M5.begin();
M5.Power.begin();
double f = ledcSetup(1, 1000, 10);
Serial.printf("F=%.0f\n",f);
ledcAttachPin(pin,1);
ledcWrite(1, 511);
ledcDetachPin(pin);
void loop() {
delay(100);
ledcRead
功能:
返回指定通道的占空比.
函数原型:
uint32_t ledcRead(uint8_t channel)
返回值:
占空比
使用示例:
#include <M5Stack.h>
uint8_t pin = 25;
void setup() {
M5.begin();
M5.Power.begin();
double f = ledcSetup(1, 1000, 10);
Serial.printf("F=%.0f\n",f);
ledcAttachPin(pin,1);
ledcWrite(1, 511);
M5.Lcd.printf("ledcRead:%d\n", ledcRead(1));
void loop() {
delay(100);
ledcReadFreq
功能:
返回当前通道频率.
函数原型:
double ledcReadFreq(uint8_t channel)
返回值:
通道频率
使用示例:
#include <M5Stack.h>
uint8_t pin = 25;
void setup() {
M5.begin();
M5.Power.begin();
double f = ledcSetup(1, 1000, 10);
Serial.printf("F=%.0f\n",f);
ledcAttachPin(pin,1);
ledcWrite(1, 511);
M5.Lcd.printf("ledcRead:%d\n", ledcRead(1));
void loop() {
delay(1000);
M5.Lcd.printf("ledcReadFreq:%.3f\n",ledcReadFreq(1));
adcAttachPin
功能:
非阻塞模式,连接设定引脚到ADC
函数原型:
bool adcAttachPin(uint8_t pin)
使用示例:
#include <M5Stack.h>
uint8_t pin = 25;
void setup() {
M5.begin();
M5.Power.begin();
if (adcAttachPin(pin)) {
M5.Lcd.printf("Pin %d attached to ADC", pin);
void loop() {}
adcStart
功能:
非阻塞模式,开启adc转换.
函数原型:
bool adcStart(uint8_t pin)
返回值:
若成功开启返回1,否则返回0
adcBusy
功能:
非阻塞模式,检查adc转换是否进行中.
函数原型:
bool adcBusy(uint8_t pin)
adcEnd
功能:
非阻塞模式,返回转换结果,如果未转换完成等待完成.
函数原型:
uint16_t adcEnd(uint8_t pin)
返回值:
返回转换结果
analogReadResolution
功能:
设置模拟数据读取分辨率,取值1~16,默认为12如果介于9和12之间,它将等于设置的硬件分辨率,否则值将被移动.
函数原型:
void analogReadResolution(uint8_t bits)
analogSetAttenuation
功能:
设置ADC全局输入衰减,取值ADC_0db, ADC_2_5db, ADC_6db, ADC_11db,默认为11db
函数原型:
void analogSetAttenuation(adc_attenuation_t attenuation)
analogSetCycles
功能:
设置采样周期1-255,默认为8.
函数原型:
void analogSetCycles(uint8_t cycles)
attenuation |
adc_attenuation_t |
analogSetPinAttenuation
功能:
设置某个单独引脚衰减
函数原型:
void analogSetPinAttenuation(uint8_t pin, adc_attenuation_t attenuation)
cycles |
uint8_t |
sampling period |
analogSetSamples
功能:
设置单次采样的实际采样倍数,取值1-255,默认为1,实际效果为提高adc灵敏度,采样次数扩大N倍;
函数原型:
void analogSetSamples(uint8_t samples)
uint8_t |
specified pin |
attenuation |
adc_attenuation_t |
analogSetWidth
功能:
设置adc采样分辨率9-12,默认为12.
函数原型:
void analogSetWidth(uint8_t bits)
attachInterrupt
功能:
设置引脚中断.
函数原型:
void attachInterrupt(pin, ISR(callback function), interrupt type/mode)
detachInterrupt
功能:
禁用指定引脚中断
函数原型:
void detachInterrupt(pin)
uint8_t |
callcack function |
interrupt |
hallRead
功能:
读取霍尔传感器
函数原型:
int hallRead(void));