求助有关CH376编译错误的问题[原创]

s=mInitCH376Host(); mStopIfError(s); while(1) { while(CH376DiskConnect() != USB_INT_SUCCESS ) //检查U盘是否插入 { delay_ms(100); } delay_ms(200); /*如果检测到USB设备*/ for(s=0;s<10;s++) { delay_ms(50); if(CH376DiskMount() == USB_INT_SUCCESS) { break; //初始化磁盘并测试磁盘是否就绪 } }

上面是一段程序,点编译后有错误 "main.c", line 93: error: expression must have arithmetic or pointer type (while(CH376DiskConnect() != USB_INT_SUCCESS ) //检查U盘是否插入) "main.c", line 103: error: expression must have arithmetic or pointer type (if(CH376DiskMount() == USB_INT_SUCCESS)) 请大家指点一下。

还有,我的dsp开发板只支持16位的,FILE_SYS.C中相应的Uint 8函数类型是不是也得改成Uint 16类型的啊?谢谢各位了!泪奔跪求解答啊!

因为DSP只支持16位变量,所以你把51例子移植到DSP上时注意所有命令变量需要改成16位的,char、int类型都是16位的。所以函数返回值是16位的而那些变量是8位的,所以编译会出错。


函数 和 变量直接把UINT8改为UINT16就行吗?


首先你得编译不出错,根据51单片机慢慢移植,类似于: 命令定义为#define CMD11_CHECK_EXIST 0x0006 函数定义为Uint16 CH376DiskMount(void);


嗯,试一下


只有登录才能回复,可以选择微信账号登录