stm32h7 ethernet lwip

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Аватара пользователя
Cheeseman
Открыл глаза
Сообщения: 48
Зарегистрирован: Пн июл 31, 2017 10:53:04

stm32h7 ethernet lwip

Сообщение Cheeseman »

Всем привет. Пытаюсь наладить tcp ip соединение между контроллером и пк по tcp ip. Открыл пример, который предоставляет st, tcp echo client. В проекте изменил следующеее:
1) Режим работы с RMII на MII
2) Пины ввода/вывода в соответствии с пинами на плате
Плата пингуется, но почему-то нет соединения с сервером. Как понял внутри LWIP есть функция tcp_echoclient_connected, которая является callback функцией, тип в неё заходит, когда прошло подключение. Но подключение не проходит, не могу понять почему

Код сервера (тупо слушаю порт и при подключении показываю IP клиента)

Код: Выделить всё

        /** @brief Работа задачи TcpIp сервера*/
        public static async Task TcpServerAsync(string ip, string port)
        {
            byte[] msg = new byte[1024]; // Массив для входящих сообщений
            int cnt = 0; // счетчик байт в сообщении

            tcpListener = new TcpListener(IPAddress.Any, Convert.ToInt32(port));
            tcpListener.Start();
            StartForm.startForm.StartForm_AddLog("-Сервер запущен.");
            while (true)
            {
                tcpClient = await tcpListener.AcceptTcpClientAsync();   // подключение к клиенту
                netStream = tcpClient.GetStream();  // получение и отправка сообщений 
                while (tcpClient.Connected)
                {
                    StartForm.startForm.StartForm_AddLog($"-Входящее подключение: {tcpClient.Client.RemoteEndPoint}");
                    cnt = await netStream.ReadAsync(msg, 0, msg.Length);
                    if (cnt != 0)
                    {
                        msgHandler(msg);
                    }
                }
            }
        }
Код настроек IP адреса контроллера

Код: Выделить всё

#define DEST_IP_ADDR0   ((uint8_t)169U)
#define DEST_IP_ADDR1   ((uint8_t)254U)
#define DEST_IP_ADDR2   ((uint8_t)71U)
#define DEST_IP_ADDR3   ((uint8_t)54U)

#define DEST_PORT       ((uint16_t)6666U)

/*Static IP ADDRESS: IP_ADDR0.IP_ADDR1.IP_ADDR2.IP_ADDR3 */
#define IP_ADDR0   ((uint8_t) 169U)
#define IP_ADDR1   ((uint8_t) 254U)
#define IP_ADDR2   ((uint8_t) 71U)
#define IP_ADDR3   ((uint8_t) 10U)

/*NETMASK*/
#define NETMASK_ADDR0   ((uint8_t) 255U)
#define NETMASK_ADDR1   ((uint8_t) 255U)
#define NETMASK_ADDR2   ((uint8_t) 255U)
#define NETMASK_ADDR3   ((uint8_t) 0U)

/*Gateway Address*/
#define GW_ADDR0   ((uint8_t) 169U)
#define GW_ADDR1   ((uint8_t) 254U)
#define GW_ADDR2   ((uint8_t) 71U)
#define GW_ADDR3   ((uint8_t) 1U)
В чем может быть дело, почему не проходит подключение, хотя пинг есть и куда смотреть?
Реклама
Ответить

Вернуться в «ARM»