mind+自定义用户库
本帖最后由 猴哥 于 2022-8-11 17:08 编辑我开发了一个舵机操作的用户库(官方的当然也能用,目的也是为了学习)。
现在遇到的问题是用mind+上传会报错。
我的操作流程是
1:main.ts的内容是
//% color="#AA278D" iconWidth=50 iconHeight=40
namespace arduinoHouXinxin {
//% block="初始化" blockType="command"
export function myBlock(parameter: any, block: any) {
Generator.addInclude('Servo', '#include <Servo.h>');
}
//% block="绑定针脚转度" blockType="command"
//% YINJIAO.shadow="dropdown" YINJIAO.options="PIN_DigitalWrite"
//% VALUE.shadow="number"
export function myservoAttach(parameter: any, block: any) {
let YINJIAOVALUE = parameter.YINJIAO.code;
let VALUEVALUE = parameter.VALUE.code;
Generator.addObject(`myservo_${YINJIAOVALUE}`, `Servo`, `myservo${YINJIAOVALUE};`);
Generator.addSetup(`myservo_${YINJIAOVALUE}.attach`, `myservo_${YINJIAOVALUE}.attach(${YINJIAOVALUE});`);
Generator.addCode(`myservo_${YINJIAOVALUE}.write(${VALUEVALUE})`);
}
}
2:然后在项目所在的\libraries文件夹中也放了Servo这个类库,具体路径如下,我也试着去掉上层的Servo这个目录也不好使
3:mind+中生成的代码如下
4:在原生编辑器中是没有问题的
5:然后mind+中上传就会报错 错误如下
D:\Program Files (x86)\Mind+\Arduino\arduino-builder\arduino-builder.exe -preprocess -logger=machine -hardware D:\Program Files (x86)\Mind+\Arduino\hardware -tools D:\Program Files (x86)\Mind+\Arduino\arduino-builder -tools D:\Program Files (x86)\Mind+\Arduino\hardware\tools\avr -libraries C:\Users\Dell\AppData\Local\DFScratch\extensions\houxinxin-houxinxinservo001-thirdex\arduinoC\libraries -built-in-libraries D:\Program Files (x86)\Mind+\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2341_0X0043 -ide-version=10804 -build-path C:\Users\Dell\AppData\Local\DFScratch\build -warnings=none -build-cache C:\Users\Dell\AppData\Local\DFScratch\cache -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=D:\Program Files (x86)\Mind+\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=D:\Program Files (x86)\Mind+\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=D:\Program Files (x86)\Mind+\Arduino\hardware\tools\avr -verbose C:\Users\Dell\AppData\Local\DFScratch\dfrobot\dfrobot.ino
D:\Program Files (x86)\Mind+\Arduino\hardware\tools\avr\bin\avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I D:\Program Files (x86)\Mind+\Arduino\hardware\arduino\avr\cores\arduino -I D:\Program Files (x86)\Mind+\Arduino\hardware\arduino\avr\variants\eightanaloginputs -I D:\Program Files (x86)\Mind+\Arduino\hardware\arduino\avr\cores\arduino -I D:\Program Files (x86)\Mind+\Arduino\hardware\arduino\avr\variants\standard -I C:\Users\Dell\AppData\Local\DFScratch\extensions\houxinxin-houxinxinservo001-thirdex\arduinoC\libraries\Servo C:\Users\Dell\AppData\Local\DFScratch\cache\dfrobot.ino.cpp -o C:\Users\Dell\AppData\Local\DFScratch\cache\dfrobot.ino.cpp.o
D:\Program Files (x86)\Mind+\Arduino\hardware\tools\avr\bin\avr-gcc -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o C:\Users\Dell\AppData\Local\DFScratch\build\dfrobot.ino.elf C:\Users\Dell\AppData\Local\DFScratch\cache\dfrobot.ino.cpp.o D:\Program Files (x86)\Mind+\Arduino\static/core/uno/core.a -lm
C:\Users\Dell\AppData\Local\Temp\ccMuXXCh.ltrans0.ltrans.o: In function `setup':
C:\Users\Dell\AppData\Local\DFScratch\cache/dfrobot.ino.cpp:14: undefined reference to `Servo::attach(int)'
C:\Users\Dell\AppData\Local\Temp\ccMuXXCh.ltrans0.ltrans.o: In function `loop':
C:\Users\Dell\AppData\Local\DFScratch\cache/dfrobot.ino.cpp:17: undefined reference to `Servo::write(int)'
C:\Users\Dell\AppData\Local\Temp\ccMuXXCh.ltrans0.ltrans.o: In function `_GLOBAL__sub_I_myservo_2':
C:\Users\Dell\AppData\Local\DFScratch\cache/dfrobot.ino.cpp:9: undefined reference to `Servo::Servo()'
collect2.exe: error: ld returned 1 exit status
链接失败
有没有大佬知道这是为啥
servo库跟内置的可能会冲突,用来学习的话可以选择其他的传感器模块 Forgotten 发表于 2022-8-12 14:48
servo库跟内置的可能会冲突,用来学习的话可以选择其他的传感器模块
模拟声音传感器有掌控板的用户库嘛? xdd 发表于 2023-3-30 13:05
模拟声音传感器有掌控板的用户库嘛?
模拟的传感器直接读取引脚模拟值即可,不需要单独的用户库
页:
[1]