工具与软件:
您好!
我使用的是 TMS320F28335
我正在尝试使用字符串 conbat、strcpy 、strcmp 函数 、例如 Testdata[10]={'\x02'、'A'、'B'、'C'、'2'、'D'、'0'、'M'、'\x03'};
使用 oncat 和 strcpy 将该 Testdata 混合到字符串中、如下所示的代码。
unsigned char extracted_data[5];
unsigned char Concatenat_Data[]={"\0"};
unsigned int receivedData[10] = {'\x02', 'F', 'R', 'M','2', 'D','0','M','\x03'};
unsigned int process_buffer()
{
unsigned int i,j, initial_index=0,last_index,c=0;
unsigned int is_cmd_ready = 0;
char String_Rxd[10] = {"\0"};
unsigned int buffer_size = sizeof(receivedData) / sizeof(receivedData[0]);
for (j = 1; j < buffer_size && receivedData[j] != '\x03'; j++)
{
if(receivedData[initial_index] == '\x02' && receivedData[8] == '\x03')
{
received_command[j - 1] = receivedData[j];
Concatenat_Data[c] = received_command[j - 1];
printf("Concatenat_Data: %c\n", Concatenat_Data[c]);
printf("Received data: %c\n", received_command[j - 1]);
c++;
}
else if(receivedData[0] != '\x02' || receivedData[8] != '\x03')
{
}
}
/*Concat function*/
concatenateStrings(String_Rxd, Concatenat_Data);
printf("String_Rxd: %s\n", String_Rxd);
/*Copy string function*/
strcpy(extracted_data, Concatenat_Data);
printf("extracted_data: %s\n", extracted_data);
c=0;
is_cmd_ready = 1;
return is_cmd_ready;
}
void concatenateStrings(char* str1, const char* str2)
{
while (*str1) {
++str1;
}
while (*str2) {
*str1++ = *str2++;
}
// Add the null-terminating character
*str1 = '\0';
}
i)第一次运行 获取连接字符串的代码时、使用 printf 可以确保数据正确连接。
结果:
String_Rxd:基准
Extracted_data:FRM
ii)但当我们尝试 添加额外的函数/代码修改时、我们没有得到 以前的结果所对应的字符串字符串。
结果:
String_Rxd:
提取_data:
1)需要澄清这一点 ,因为我们正在尝试添加额外的函数/代码,我们没有得到字符串.
对于字符串或应添加的内存大小、我们应该对配置进行任何更改? Code Composer 中
2)当我们在这个过程中添加更多的函数时,我们有时会得到这样的结果,一些额外的符号会被显示出来
Extracted_data:[空]或 Extracted_data: np€Ëc÷Ð`XÈî99 x˜w: wW²
3) 3) Code composer 是否支持 strlen 函数
谢谢。 此致、
Taruna G