UNO 编译带USB host库文件错
本帖最后由 伯德 于 2013-7-10 13:00 编辑本人搭建了一个UNO+USB host的模块。
Google官方下载了USB host的库代码。
目前出现如下错误:
C:\Users\wangteng\Documents\Arduino\libraries\USB_Host_Shield\Max3421e.cpp: In static member function 'static void MAX3421E::setRST(uint8_t)':
C:\Users\wangteng\Documents\Arduino\libraries\USB_Host_Shield\Max3421e.cpp:58: error: 'PORTJ' was not declared in this scope
C:\Users\wangteng\Documents\Arduino\libraries\USB_Host_Shield\Max3421e.cpp:58: error: 'PJ2' was not declared in this scope
C:\Users\wangteng\Documents\Arduino\libraries\USB_Host_Shield\Max3421e.cpp:60: error: 'PORTJ' was not declared in this scope
C:\Users\wangteng\Documents\Arduino\libraries\USB_Host_Shield\Max3421e.cpp:60: error: 'PJ2' was not declared in this scope
....
但是把board设置成Mega2560,编译顺利通过。
完整代码下载地址:https://github.com/awong1900/Test
大家帮我看看。
解决方案:
Max3421e.cpp文件修改,见三楼。 应该得用第三方修改后的host库,官方的本身做的是2560上。。。应该是不支持uno的,因为寄存器还是有很大差距的。 修改了board,像PORTJ的宏定义就可以通过。
知道不同的board调用的代码在哪吗? 搜索了一下,发现有这样的改法。是在Google代码的基础上修改。//#define INT PB1
#define INT PORTB1
#define INT_PORT PORTB
#define INT_DDR DDRB
#define INT_PIN PINB
//#define RST PD7
#define RST PORTD7
#define RST_PORT PORTD
#define RST_DDR DDRD
#define RST_PIN PIND-----------
不懂为什么这么改。这里的宏定义是针对那些的硬件口的?有没有相关资料可以查到。 伯德 发表于 2013-4-23 22:09 static/image/common/back.gif
搜索了一下,发现有这样的改法。是在Google代码的基础上修改。-----------
不懂为什么这么改。这里的宏定 ...
自己搞过一次都忘了。 上面的修改是在Max3421e.cpp 文件。
页:
[1]