ENC28J60 Проблема запроса ARP, каждый 8-й байт инкриминируется одним - PullRequest
1 голос
/ 01 мая 2020

На этот раз я работаю с ENC28J60. Я попытался получить IP-адрес с помощью запроса ARP. Контроллер передает пакет правильно вместо каждого 8-го байта, инкриминируемого одним! В чем проблема? Может ли кто-нибудь помочь мне.

Изображение захвата пакета Wireshark прилагается ниже.

void sendPacket1(uint8_t length){
    setReg8(ECON1, ECON1_TXRST);
    clrReg8(ECON1, ECON1_TXRST);

    writeReg16(EWRPT, TXSTART_INIT);
    writeReg16(ETXND, TXSTART_INIT+length);

    setReg8(ECON1, ECON1_TXRTS);
}


void writeBuffer1(void){
    uint8_t arprequest[62] = {ENC28J60_WRITE_BUF_MEM, 0x00, 
    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,  
    Ethaddr0 ,Ethaddr1 ,Ethaddr2 ,Ethaddr3 ,Ethaddr4 ,Ethaddr5,  
    0x08,0x06,0x00,0x01, 
    0x08,0x00,0x06,0x04,0x00,0x01,  
    Ethaddr0 ,Ethaddr1 ,Ethaddr2 ,Ethaddr3 ,Ethaddr4 ,Ethaddr5,  
    0xC0,0xA8,0x01,0x35, 
    0x00,0x00,0x00,0x00,0x00,0x00,  
    0xC0,0xA8,0x01,0x01,   
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};


    HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
    HAL_SPI_Transmit(&hspi2, arprequest, 62, HAL_MAX_DELAY);
    HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
}

введите описание изображения здесь

...