Проблема с несоответствием данных при переносе структуры - PullRequest
0 голосов
/ 20 марта 2020

Я новичок в C и пока не все понимаю. У меня проблемы с решением предупреждений для кода, используемого в более крупной программе. Теоретически я мог бы пропустить эти проблемы, потому что код работает, но в целевом приложении у меня есть проблема, и я думаю, что предупреждения указывают на источник проблемы (я не могу их решить).

#include <stdio.h>
#include <string.h>
#include <stdint.h>

 typedef struct{

    uint8_t Tx[2];
    uint8_t Rx[2];

}MessageTypeDef;

MessageTypeDef Data = {
        {0x11, 0x22},
        {0x33, 0x44}
};
void Print_Frame( MessageTypeDef Msg[]);

int main (void)
{
    Print_Frame(Data.Tx);
    //Print_Frame(Data.Rx);
    return 0;
}

void Print_Frame(MessageTypeDef Msg[])
{
    char buffer[100] = {0};
    sprintf(buffer," FRAME:%02x%02x|\r\n",(Msg->Tx[0]), (Msg->Tx[1]));
    printf("TX VALUE: %s\n",buffer);

}

И сообщение об ошибке:

E:\Embedded_C\untitled\main.c: In function 'main':
E:\Embedded_C\untitled\main.c:20:17: warning: passing argument 1 of 'Print_Frame' from incompatible pointer type [-Wincompatible-pointer-types]
     Print_Frame(Data.Tx);
                 ^~~~
E:\Embedded_C\untitled\main.c:16:6: note: expected 'MessageTypeDef * {aka struct <anonymous> *}' but argument is of type 'uint8_t * {aka unsigned char *}'
 void Print_Frame( MessageTypeDef Msg[]);
      ^~~~~~~~~~~

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...