自己添加了一个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 因为有"#ifdef RT_USING_FINSH "
所以应该在前面 "#include <rtthread.h>" 里面有"#include <rtconfig.h>"
rtconfig.h里面有定义"RT_USING_FINSH"
另,一般把finsh的头文件目录加入全局搜索路径,程序中只需要"#include <finsh.h>" 回复【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()也可以显示出这个命令来。
执行时出现这个提示 你这个应该是名称太长了,如果你确实需要长名称,改改finsh的配置,目前是定为16个字符。 谢谢,是这个原因,已经解决
页:
[1]