尝试从http://ms-iot.github.io/content/16x2LCD.htm
基本上只是向LCD模块写入字符。LiquidCrystal库无法与Visual Studio一起使用,因为它组合了来自不同库的类。基本上,我会遇到编译错误C2653,以及其他一些错误,因为类Print和对象Print在不同的类中使用并复合。任何人都知道修复错误的方法
error C2011: 'Print' : 'class' type redefinition
class Print{
private: int write_error;
error C2039: 'print' : is not a member of 'LiquidCrystal'
lcd.print("Hello!");
error C2504: 'Print' : base class undefined
class LiquidCrystal : public Print { public:
error C2873: 'write' : symbol cannot be used in a using-declaration,
using Print::write;
error C2027: use of undefined type 'Print'
using Print::write;
error C2873: 'write' : symbol cannot be used in a using-declaration
using Print::write;
我认为问题是由于名称空间未被识别,并且在LCD类中使用Print.h向LCD显示器写入被过度使用。
如何在LCD类中调用Print的函数,这样每次调用Print.h时都不会重新定义它?
http://sixfortyfour.wordpress.com/2014/09/26/displaying-intel-galileo-ip-address-on-a-16x2-lcd/作为快速修复,我修改了Print.h和Stream.h,这些文件位于{Galileo Project Folder}\packages\Microsoft.IoT.Galileo.Arduino1.0.5\build\native\include中。对于Print.h,我添加了:
#ifndef _PRINT_H
#define _PRINT_H
class Print
{
// Rest of print class
}
#endif
对于Stream.h,我更改了:
enter code here
class流:公共打印->class流
我检查了github存储库,Print.h包含了更改,Stream.h仍然继承自Print(https://github.com/ms-iot/galileo-sdk/tree/develop/source)。
我还修改了RS、ENABLE、D0、D1、D2、D3,以匹配我在netduino项目中使用的LCD配置。