|
|
#define NFIELDS (11)
//主函数调用下面这个函数
ParseCommands(buf, pFields, NFIELDS, ","); //buf是串口进来的数据,字符串格式
//函数
void ParseCommands(char* Buffer, char** pFields, uint32_t numFields, char* delimiter)
{
char* pString = Buffer;
char* pField;
for (uint32_t i=0; i<numFields; i++)
{
pField = strtok(pString, delimiter);
if (pField != NULL)
{
pFields[i] = pField;
}
else
{
pFields[i] = "";
}
pString = NULL; //parse next
}
if (strcmp("init", pFields[0]) == 0)//如果关键字为init
{
ILI9340_Display tft = ILI9340_Display(D11,D12,D13,D10,D9,D8);//初始化定义引脚
tft.DispInit();//执行初始化过程
tft.FillScreen(ILI9340_CYAN);//初始化后填充某颜色
}
}
大概就是这样的,主函数调用ParseCommands(buf, pFields, NFIELDS, ",")的时候,除了串口进来的buf和“,”参数之外,其他2个参数是怎么来的?
为何经常调用函数失败?一直卡在这里,偶尔能调用成功,屏幕有反应。
|
|