u8 HelpTab[][50] = {
{"0xaa 0x55 addr 0x3a 0xa5 0x5a:返回时间\r\n" },
{"0xaa 0x55 addr 0x3b 0xa5 0x5a:返回地点\r\n" },
{"0xaa 0x55 addr 0x3c0xa5 0x5a:返回人物\r\n" },
{"0xaa 0x55 addr 0x3d0xa5 0x5a:返回返回姓名\r\n" },
{"0xaa 0x55 addr 0x3e0xa5 0x5a:返回返回性别\r\n" },
{"0xaa 0x55 addr 0x3f 0xa5 0x5a:返回返回事件\r\n" },
{"help:返回帮助信息\r\n" }
};
在串口的协议中,想加一个帮助命令,比如有上面一个二维数组,只要发送help,就会把二维数组的数据全返回给用户。
比如有一个发送函数void SendMessage(u8 *P,u16 num);
在发送的时候,传入HelpTab[0],然后通过HelpTab的首地址,即HelpTab[0],再加一个偏移地址,把HelpTab的数据一次性全部返回,实际上却做不到,因为在发送完第一行数据后,就会停止发送后面的数据。
我的疑问是,对于单片机来说,不管是0xaa这样的数据,还是换行符,都是数据,它不会像上位机那样,把它当作换行符。但是实际上却无法一次性把数据发上来,这是上位机软件的处理问题还是编译器处理的机制还是???
|