程序如下:
#include <ssd1306.h>// 导入 SSD1306 库
#include <ssd1306_console.h>
Ssd1306Console console;// 定义控制台对象实例
// 引脚定义
const int pinA1 = 26;//M1A 对应引脚
const int pinB1 = 27;//M1B 对应引脚
const int pinA2 = 25;//M2B 对应引脚
const int pinB2 = 17;//M2A 对应引脚
const int speedPin = A3;// 定义模拟角度传感器引脚
// 定义电机 PWM
int leftPWM ;
int rightPWM;
void setup() {
ssd1306_128x64_i2c_init();// 初始化 SSD1306 液晶显示屏
ssd1306_clearScreen();
ssd1306_setFixedFont(ssd1306xled_font6x8);
// 定义通道
ledcSetup(0, 5000, 10);
ledcSetup(1, 5000, 10);
ledcSetup(2, 5000, 10);
ledcSetup(3, 5000, 10);
// 关联引脚以及通道
ledcAttachPin(pinA1, 0);
ledcAttachPin(pinB1, 1);
ledcAttachPin(pinA2, 2);
ledcAttachPin(pinB2, 3);
// 设置模拟输入采样位数,取值范围为 0~1023
analogSetWidth(10);
}
void loop() {
int val = analogRead(speedPin);// 将模拟角度传感器的值赋值给 val
leftPWM = val;
rightPWM = val;
forward();
console.printf("speed: %d\n", val);// 在 SSD1306 上显示 PWM 的值
}
// 小车前进
void forward() {
ledcWrite(0, leftPWM);
ledcWrite(1, 0);
ledcWrite(2, rightPWM);
ledcWrite(3, 0);
}
出现报错如下:
C:\Users\KING\Documents\Arduino\libraries\ssd1306\src\intf\vga\esp32\CompositeOutput.cpp: In member function 'void CompositeOutput::check_buffer()':
C:\Users\KING\Documents\Arduino\libraries\ssd1306\src\intf\vga\esp32\CompositeOutput.cpp:280:112: error: invalid conversion from 'size_t* {aka unsigned int*}' to 'TickType_t {aka unsigned int}' [-fpermissive]
i2s_write_bytes(I2S_PORT, (char*)line, sizeof(uint16_t) * (m_end - line), &bytes_written, portMAX_DELAY);
^
C:\Users\KING\Documents\Arduino\libraries\ssd1306\src\intf\vga\esp32\CompositeOutput.cpp:280:112: error: too many arguments to function 'int i2s_write_bytes(i2s_port_t, const void*, size_t, TickType_t)'
In file included from C:\Users\KING\Documents\Arduino\libraries\ssd1306\src\intf\vga\esp32\CompositeOutput.h:12:0,
from C:\Users\KING\Documents\Arduino\libraries\ssd1306\src\intf\vga\esp32\CompositeOutput.cpp:5:
C:\esp32luxi\Arduino_ESP32\Arduino-1.8.9_ESP32\hardware\espressif\esp32/tools/sdk/include/driver/driver/i2s.h:274:5: note: declared here
int i2s_write_bytes(i2s_port_t i2s_num, const void *src, size_t size, TickType_t ticks_to_wait) __attribute__ ((deprecated));
^
"ssd1306.h" 对应多个库
已使用: C:\Users\KING\Documents\Arduino\libraries\ssd1306
未使用:C:\esp32luxi\Arduino_ESP32\Arduino-1.8.9_ESP32\libraries\ssd1306-1.7.18
exit status 1
为开发板 ESP32 Dev Module 编译时出错。
不知该如何解决,希望有同样问题的帮解决下,感觉是1306库的问题,但是尝试重新安装库了还是不好使!