billtian 发表于 2010-5-20 19:08:07

自己添加了一个FINSH命令,执行出现NULL NODE是什么原因,知道的朋友给指点下,谢谢!

代码如下:
void ADCSingleConvert(uint32_t ch)
{
        uint16_t result;

        ADC_SoftwareStartConvCmd(ADC1, ENABLE);
        while(ADC_GetSoftwareStartConvStatus(ADC1));
        result = ADC_GetConversionValue(ADC1);

        rt_kprintf("adc=%u\r\n",result);

//        return(result);
}
#ifdef RT_USING_FINSH
#include "..\finsh\finsh.h"
FINSH_FUNCTION_EXPORT(ADCSingleConvert,set ch 12bit data.)
#endif

执行时显示
finsh>>ADCSingleConvert(0)
Null node

aozima 发表于 2010-5-20 19:38:59

因为有"#ifdef RT_USING_FINSH "
所以应该在前面 "#include <rtthread.h>" 里面有"#include <rtconfig.h>"
rtconfig.h里面有定义"RT_USING_FINSH"

另,一般把finsh的头文件目录加入全局搜索路径,程序中只需要"#include <finsh.h>"

billtian 发表于 2010-5-21 08:31:10

回复【1楼】aozima
因为有"#ifdef rt_using_finsh "
所以应该在前面 "#include <rtthread.h>" 里面有"#include <rtconfig.h>"
rtconfig.h里面有定义"rt_using_finsh"
另,一般把finsh的头文件目录加入全局搜索路径,程序中只需要"#include <finsh.h>"
-----------------------------------------------------------------------

你好,谢谢你的回复,不太明白你的意思,我已经有#define RT_USING_FINSH
还有,用LIST()也可以显示出这个命令来。

执行时出现这个提示

ffxz 发表于 2010-5-21 09:20:36

你这个应该是名称太长了,如果你确实需要长名称,改改finsh的配置,目前是定为16个字符。

billtian 发表于 2010-5-21 13:02:03

谢谢,是这个原因,已经解决
页: [1]
查看完整版本: 自己添加了一个FINSH命令,执行出现NULL NODE是什么原因,知道的朋友给指点下,谢谢!