本帖最后由 zgjzgjkyo 于 2020-9-1 14:47 编辑
我目前是这样的:
void main
{
char TestWord[10]={0xF5, 0x11, 0x00, 0xC3, 0xA4, 0xF5}; //实际上这个不一定是10。也有可能是其它随机大小的数组
//如:char abc[]="123" 又或者 char *abc = "12345"等等.....
SendString(TestWord);
}
void SendString( *data);
{
unsigned char datalen = strlen(data); //结果发现这里的datalen数值变成”2“了。思考原因是为上面的第3个数字为 0x00了
//如果把 0x00 改为其它数值,也能识别为”6“(但也不正确,我是需要把 10个数包括 0x00也发送出去的)
for(i = 0 ; i < datalen ; i++)/*(datalen = 0 ; datalen < strlen(data) ; datalen++)*/
{
Uart_SendData8(data[i]); //因为辨识不正确,所以无法完整的把数组内容发送出去了.........
}
}
我目前想到的办法是直接把数值的长度也传参过去。(但对于发送内容不确定,而且内容含有 0x00 这个数组真心没办法。我目前只会用 strlen(data) 这个判断数值的长度,但这个只会计算长度到 0x00。 0x00之后的就不计算了....)
不知大家有没有更好的方案?传递 不确定长度的数组的传参?
阿~~代码块怎么编辑也不好看阿...........
|