简体   繁体   中英

Trouble Reading Data of .WAV file in C/C++

I am trying to use an ESP32s2 in order to read a .WAV file off an SD card.

To do this, I created a 256Hz, 1sec, 16BIT PCM, 44.1Khz sample rate .WAV file in Audacity. 256Hz Wav & Export Settings

I am able to parse the header just fine, but at the 400th byte of the data section, it becomes all zeros (see output below).

I have tested the file against other parsers that I found online and it shows data through the entire file. I also double-checked the file on my SD card to ensure it is not corrupt.

Please someone help me figure out why I am getting all these zeros.

Here is my code:

#include <stdio.h>
#include <string.h>
#include <sys/unistd.h>
#include <sys/stat.h>
#include "esp_err.h"
#include "esp_log.h"
#include "esp_vfs_fat.h"
#include "driver/sdspi_host.h"
#include "driver/spi_common.h"
#include "sdmmc_cmd.h"
#include "sdkconfig.h"
#include <stdlib.h>
#include <math.h>
#include <assert.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "driver/gpio.h"
#include "driver/dac.h"
#include "driver/timer.h"

static const char *TAG = "Output"; //Tag used in ESP32s2 output log

//SD Card Components
#define MOUNT_POINT "/sdcard"
#define SPI_DMA_CHAN    host.slot
#define PIN_NUM_MISO 20 
#define PIN_NUM_MOSI 26 
#define PIN_NUM_CLK  21 
#define PIN_NUM_CS   33

//Wav Components
char header[44]; //Holds the WAV file header
#define BUFFERSIZE  512 //number of data bytes to grab
char buffer1_8Bit[BUFFERSIZE];  //buffer which contain the WAV data.
short buffer1_16Bit[(BUFFERSIZE/2)]; //data is 16 bits little-endian so will get stored here.
typedef struct //This struct will hold information related to the WAV file that's being read.
{
  int format;
  int sample_rate;
  int bits_per_sample;
  int number_of_samples;
}wave_format;
wave_format wave_info;

void app_main(void)
{
    //Define retrun variable for error checking
    esp_err_t ret;

    // Options for mounting the filesystem.
    // If format_if_mount_failed is set to true, SD card will be partitioned and
    // formatted in case when mounting fails.
    esp_vfs_fat_sdmmc_mount_config_t mount_config = {
#ifdef CONFIG_EXAMPLE_FORMAT_IF_MOUNT_FAILED
        .format_if_mount_failed = true,
#else
        .format_if_mount_failed = false,
#endif // EXAMPLE_FORMAT_IF_MOUNT_FAILED
        .max_files = 5,
        .allocation_unit_size = 16 * 1024
    };
    sdmmc_card_t* card;
    const char mount_point[] = MOUNT_POINT;
    ESP_LOGI(TAG, "Initializing SD card");

    // Use settings defined above to initialize SD card and mount FAT filesystem.
    // Note: esp_vfs_fat_sdmmc/sdspi_mount is all-in-one convenience functions.
    // Please check its source code and implement error recovery when developing
    // production applications.
    ESP_LOGI(TAG, "Using SPI peripheral");

    sdmmc_host_t host = SDSPI_HOST_DEFAULT();
    spi_bus_config_t bus_cfg = {
        .mosi_io_num = PIN_NUM_MOSI,
        .miso_io_num = PIN_NUM_MISO,
        .sclk_io_num = PIN_NUM_CLK,
        .quadwp_io_num = -1,
        .quadhd_io_num = -1,
        .max_transfer_sz = 4000,
    };
    ret = spi_bus_initialize(host.slot, &bus_cfg, SPI_DMA_CHAN);
    if (ret != ESP_OK) {
        ESP_LOGE(TAG, "Failed to initialize bus.");
        return;
    }

    // This initializes the slot without card detect (CD) and write protect (WP) signals.
    // Modify slot_config.gpio_cd and slot_config.gpio_wp if your board has these signals.
    sdspi_device_config_t slot_config = SDSPI_DEVICE_CONFIG_DEFAULT();
    slot_config.gpio_cs = PIN_NUM_CS;
    slot_config.host_id = host.slot;

    ret = esp_vfs_fat_sdspi_mount(mount_point, &host, &slot_config, &mount_config, &card);

    if (ret != ESP_OK) {
        if (ret == ESP_FAIL) {
            ESP_LOGE(TAG, "Failed to mount filesystem. "
                "If you want the card to be formatted, set the EXAMPLE_FORMAT_IF_MOUNT_FAILED menuconfig option.");
        } else {
            ESP_LOGE(TAG, "Failed to initialize the card (%s). "
                "Make sure SD card lines have pull-up resistors in place.", esp_err_to_name(ret));
        }
        return;
    }

    // Card has been initialized, print its properties
    sdmmc_card_print_info(stdout, card);

    // Use POSIX and C standard library functions to work with files.
    // First create a file.
    ESP_LOGI(TAG, "Opening file");
    FILE* f = fopen(MOUNT_POINT"/256.wav", "r");
    if (f == NULL) {
        ESP_LOGE(TAG, "Failed to open file for reading");
        return;
    }

    //Get the header of the file    
    fgets(header, sizeof(header), f);

    //Extract the Sample Rate field from the header
    wave_info.sample_rate |= header[24];
    wave_info.sample_rate |= (header[25]<<8);
    //Ouput to log
    ESP_LOGI(TAG, "Sample Rate: %d", wave_info.sample_rate);

    //Extract the audio format from the header
    wave_info.format |= header[20];
    wave_info.format |= (header[21]<<8);
    //Ouput to log
    ESP_LOGI(TAG, "Audio Format: %d", wave_info.format);

    //Extract the bits per sample from the header
    wave_info.bits_per_sample |= header[34];
    wave_info.bits_per_sample |= (header[35]<<8);
    //Ouput to log
    ESP_LOGI(TAG, "Bits Per Sample: %d", wave_info.bits_per_sample);

    //Extract the bits per sample from the header
    wave_info.number_of_samples |= header[40];
    wave_info.number_of_samples |= (header[41] << 8);
    wave_info.number_of_samples |= header[42] << 16;
    wave_info.number_of_samples |= (header[43] << 24);
    //Ouput to log
    ESP_LOGI(TAG, "Number of Samples: %0.0f", (float)wave_info.number_of_samples * ((float)8/ (float)wave_info.bits_per_sample));

    //Wave file I am using is 16 BIT PCM
    //I am aware that data is 16 bit so the bytes need to be combined,
    //but for degbugging I am going to only display the raw bytes
    fgets(buffer1_8Bit, sizeof(buffer1_8Bit), f);
    //Ouput to log
    for(int i = 0; i < sizeof(buffer1_8Bit); i++){
        ESP_LOGI(TAG, "Data Byte Number: %d, Value: %x",i, buffer1_8Bit[i]);
    } 

    //Close the file
    fclose(f);

    // All done, unmount partition and disable SDMMC or SPI peripheral
    esp_vfs_fat_sdcard_unmount(mount_point, card);
    ESP_LOGI(TAG, "Card unmounted");

    spi_bus_free(host.slot);

}

Here is my output: NOTICE BYTE 400+

Name: SD16G                                           <---------- SD CARD INFO
Type: SDHC/SDXC
Speed: 20 MHz
Size: 15238MB
I (379) Output: Opening file                             <---------- WAV HEADER INFO 
I (389) Output: Sample Rate: 44100
I (389) Output: Audio Format: 1
I (389) Output: Bits Per Sample: 16
I (389) Output: Number of Samples: 44100
I (399) Output: Data Byte Number: 0, Value: 0           <---------- WAV DATA STARTS
I (399) Output: Data Byte Number: 1, Value: 0
I (409) Output: Data Byte Number: 2, Value: 0
I (409) Output: Data Byte Number: 3, Value: d0
I (419) Output: Data Byte Number: 4, Value: 4
I (419) Output: Data Byte Number: 5, Value: 9e
I (429) Output: Data Byte Number: 6, Value: 9
I (429) Output: Data Byte Number: 7, Value: 6c
I (439) Output: Data Byte Number: 8, Value: e
I (439) Output: Data Byte Number: 9, Value: 2d
I (449) Output: Data Byte Number: 10, Value: 13
I (449) Output: Data Byte Number: 11, Value: f0
I (459) Output: Data Byte Number: 12, Value: 17
I (459) Output: Data Byte Number: 13, Value: a5
I (469) Output: Data Byte Number: 14, Value: 1c
I (469) Output: Data Byte Number: 15, Value: 4c
I (479) Output: Data Byte Number: 16, Value: 21
I (479) Output: Data Byte Number: 17, Value: f6
I (489) Output: Data Byte Number: 18, Value: 25
I (489) Output: Data Byte Number: 19, Value: 7d
I (499) Output: Data Byte Number: 20, Value: 2a
I (509) Output: Data Byte Number: 21, Value: 8
I (509) Output: Data Byte Number: 22, Value: 2f
I (519) Output: Data Byte Number: 23, Value: 74
I (519) Output: Data Byte Number: 24, Value: 33
I (529) Output: Data Byte Number: 25, Value: d6
I (529) Output: Data Byte Number: 26, Value: 37
I (539) Output: Data Byte Number: 27, Value: 20
I (539) Output: Data Byte Number: 28, Value: 3c
I (549) Output: Data Byte Number: 29, Value: 55
I (549) Output: Data Byte Number: 30, Value: 40
I (559) Output: Data Byte Number: 31, Value: 72
I (559) Output: Data Byte Number: 32, Value: 44
I (569) Output: Data Byte Number: 33, Value: 77
I (569) Output: Data Byte Number: 34, Value: 48
I (579) Output: Data Byte Number: 35, Value: 63
I (579) Output: Data Byte Number: 36, Value: 4c
I (589) Output: Data Byte Number: 37, Value: 30
I (589) Output: Data Byte Number: 38, Value: 50
I (599) Output: Data Byte Number: 39, Value: e5
I (599) Output: Data Byte Number: 40, Value: 53
I (609) Output: Data Byte Number: 41, Value: 74
I (609) Output: Data Byte Number: 42, Value: 57
I (619) Output: Data Byte Number: 43, Value: ed
I (619) Output: Data Byte Number: 44, Value: 5a
I (629) Output: Data Byte Number: 45, Value: 3a
I (639) Output: Data Byte Number: 46, Value: 5e
I (639) Output: Data Byte Number: 47, Value: 70
I (649) Output: Data Byte Number: 48, Value: 61
I (649) Output: Data Byte Number: 49, Value: 7b
I (659) Output: Data Byte Number: 50, Value: 64
I (659) Output: Data Byte Number: 51, Value: 64
I (669) Output: Data Byte Number: 52, Value: 67
I (669) Output: Data Byte Number: 53, Value: 2c
I (679) Output: Data Byte Number: 54, Value: 6a
I (679) Output: Data Byte Number: 55, Value: c0
I (689) Output: Data Byte Number: 56, Value: 6c
I (689) Output: Data Byte Number: 57, Value: 40
I (699) Output: Data Byte Number: 58, Value: 6f
I (699) Output: Data Byte Number: 59, Value: 86
I (709) Output: Data Byte Number: 60, Value: 71
I (709) Output: Data Byte Number: 61, Value: af
I (719) Output: Data Byte Number: 62, Value: 73
I (719) Output: Data Byte Number: 63, Value: a7
I (729) Output: Data Byte Number: 64, Value: 75
I (729) Output: Data Byte Number: 65, Value: 79
I (739) Output: Data Byte Number: 66, Value: 77
I (739) Output: Data Byte Number: 67, Value: 1c
I (749) Output: Data Byte Number: 68, Value: 79
I (759) Output: Data Byte Number: 69, Value: 96
I (759) Output: Data Byte Number: 70, Value: 7a
I (769) Output: Data Byte Number: 71, Value: e4
I (769) Output: Data Byte Number: 72, Value: 7b
I (779) Output: Data Byte Number: 73, Value: fc
I (779) Output: Data Byte Number: 74, Value: 7c
I (789) Output: Data Byte Number: 75, Value: fb
I (789) Output: Data Byte Number: 76, Value: 7d
I (799) Output: Data Byte Number: 77, Value: b2
I (799) Output: Data Byte Number: 78, Value: 7e
I (809) Output: Data Byte Number: 79, Value: 54
I (809) Output: Data Byte Number: 80, Value: 7f
I (819) Output: Data Byte Number: 81, Value: b7
I (819) Output: Data Byte Number: 82, Value: 7f
I (829) Output: Data Byte Number: 83, Value: f1
I (829) Output: Data Byte Number: 84, Value: 7f
I (839) Output: Data Byte Number: 85, Value: ff
I (839) Output: Data Byte Number: 86, Value: 7f
I (849) Output: Data Byte Number: 87, Value: d8
I (849) Output: Data Byte Number: 88, Value: 7f
I (859) Output: Data Byte Number: 89, Value: 90
I (859) Output: Data Byte Number: 90, Value: 7f
I (869) Output: Data Byte Number: 91, Value: b
I (869) Output: Data Byte Number: 92, Value: 7f
I (879) Output: Data Byte Number: 93, Value: 61
I (889) Output: Data Byte Number: 94, Value: 7e
I (889) Output: Data Byte Number: 95, Value: 85
I (899) Output: Data Byte Number: 96, Value: 7d
I (899) Output: Data Byte Number: 97, Value: 7f
I (909) Output: Data Byte Number: 98, Value: 7c
I (909) Output: Data Byte Number: 99, Value: 48
I (919) Output: Data Byte Number: 100, Value: 7b
I (919) Output: Data Byte Number: 101, Value: e9
I (929) Output: Data Byte Number: 102, Value: 79
I (929) Output: Data Byte Number: 103, Value: 57
I (939) Output: Data Byte Number: 104, Value: 78
I (939) Output: Data Byte Number: 105, Value: a2
I (949) Output: Data Byte Number: 106, Value: 76
I (949) Output: Data Byte Number: 107, Value: ba
I (959) Output: Data Byte Number: 108, Value: 74
I (959) Output: Data Byte Number: 109, Value: ae
I (969) Output: Data Byte Number: 110, Value: 72
I (969) Output: Data Byte Number: 111, Value: 74
I (979) Output: Data Byte Number: 112, Value: 70
I (989) Output: Data Byte Number: 113, Value: 14
I (989) Output: Data Byte Number: 114, Value: 6e
I (999) Output: Data Byte Number: 115, Value: 8b
I (999) Output: Data Byte Number: 116, Value: 6b
I (1009) Output: Data Byte Number: 117, Value: dd
I (1009) Output: Data Byte Number: 118, Value: 68
I (1019) Output: Data Byte Number: 119, Value: 3
I (1019) Output: Data Byte Number: 120, Value: 66
I (1029) Output: Data Byte Number: 121, Value: d
I (1029) Output: Data Byte Number: 122, Value: 63
I (1039) Output: Data Byte Number: 123, Value: eb
I (1039) Output: Data Byte Number: 124, Value: 5f
I (1049) Output: Data Byte Number: 125, Value: ac
I (1049) Output: Data Byte Number: 126, Value: 5c
I (1059) Output: Data Byte Number: 127, Value: 48
I (1069) Output: Data Byte Number: 128, Value: 59
I (1069) Output: Data Byte Number: 129, Value: c6
I (1079) Output: Data Byte Number: 130, Value: 55
I (1079) Output: Data Byte Number: 131, Value: 22
I (1089) Output: Data Byte Number: 132, Value: 52
I (1089) Output: Data Byte Number: 133, Value: 65
I (1099) Output: Data Byte Number: 134, Value: 4e
I (1099) Output: Data Byte Number: 135, Value: 84
I (1109) Output: Data Byte Number: 136, Value: 4a
I (1109) Output: Data Byte Number: 137, Value: 93
I (1119) Output: Data Byte Number: 138, Value: 46
I (1119) Output: Data Byte Number: 139, Value: 7a
I (1129) Output: Data Byte Number: 140, Value: 42
I (1139) Output: Data Byte Number: 141, Value: 5b
I (1139) Output: Data Byte Number: 142, Value: 3e
I (1149) Output: Data Byte Number: 143, Value: 11
I (1149) Output: Data Byte Number: 144, Value: 3a
I (1159) Output: Data Byte Number: 145, Value: c6
I (1159) Output: Data Byte Number: 146, Value: 35
I (1169) Output: Data Byte Number: 147, Value: 56
I (1169) Output: Data Byte Number: 148, Value: 31
I (1179) Output: Data Byte Number: 149, Value: e3
I (1179) Output: Data Byte Number: 150, Value: 2c
I (1189) Output: Data Byte Number: 151, Value: 53
I (1189) Output: Data Byte Number: 152, Value: 28
I (1199) Output: Data Byte Number: 153, Value: be
I (1209) Output: Data Byte Number: 154, Value: 23
I (1209) Output: Data Byte Number: 155, Value: 16
I (1219) Output: Data Byte Number: 156, Value: 1f
I (1219) Output: Data Byte Number: 157, Value: 67
I (1229) Output: Data Byte Number: 158, Value: 1a
I (1229) Output: Data Byte Number: 159, Value: ab
I (1239) Output: Data Byte Number: 160, Value: 15
I (1239) Output: Data Byte Number: 161, Value: e9
I (1249) Output: Data Byte Number: 162, Value: 10
I (1249) Output: Data Byte Number: 163, Value: 21
I (1259) Output: Data Byte Number: 164, Value: c
I (1259) Output: Data Byte Number: 165, Value: 53
I (1269) Output: Data Byte Number: 166, Value: 7
I (1279) Output: Data Byte Number: 167, Value: 86
I (1279) Output: Data Byte Number: 168, Value: 2
I (1289) Output: Data Byte Number: 169, Value: b2
I (1289) Output: Data Byte Number: 170, Value: fd
I (1299) Output: Data Byte Number: 171, Value: e5
I (1299) Output: Data Byte Number: 172, Value: f8
I (1309) Output: Data Byte Number: 173, Value: 16
I (1309) Output: Data Byte Number: 174, Value: f4
I (1319) Output: Data Byte Number: 175, Value: 50
I (1319) Output: Data Byte Number: 176, Value: ef
I (1329) Output: Data Byte Number: 177, Value: 8c
I (1329) Output: Data Byte Number: 178, Value: ea
I (1339) Output: Data Byte Number: 179, Value: d0
I (1349) Output: Data Byte Number: 180, Value: e5
I (1349) Output: Data Byte Number: 181, Value: 1f
I (1359) Output: Data Byte Number: 182, Value: e1
I (1359) Output: Data Byte Number: 183, Value: 79
I (1369) Output: Data Byte Number: 184, Value: dc
I (1369) Output: Data Byte Number: 185, Value: e2
I (1379) Output: Data Byte Number: 186, Value: d7
I (1379) Output: Data Byte Number: 187, Value: 51
I (1389) Output: Data Byte Number: 188, Value: d3
I (1389) Output: Data Byte Number: 189, Value: e0
I (1399) Output: Data Byte Number: 190, Value: ce
I (1399) Output: Data Byte Number: 191, Value: 6a
I (1409) Output: Data Byte Number: 192, Value: ca
I (1419) Output: Data Byte Number: 193, Value: 23
I (1419) Output: Data Byte Number: 194, Value: c6
I (1429) Output: Data Byte Number: 195, Value: d5
I (1429) Output: Data Byte Number: 196, Value: c1
I (1439) Output: Data Byte Number: 197, Value: b6
I (1439) Output: Data Byte Number: 198, Value: bd
I (1449) Output: Data Byte Number: 199, Value: 9b
I (1449) Output: Data Byte Number: 200, Value: b9
I (1459) Output: Data Byte Number: 201, Value: ab
I (1459) Output: Data Byte Number: 202, Value: b5
I (1469) Output: Data Byte Number: 203, Value: c7
I (1469) Output: Data Byte Number: 204, Value: b1
I (1479) Output: Data Byte Number: 205, Value: 8
I (1489) Output: Data Byte Number: 206, Value: ae
I (1489) Output: Data Byte Number: 207, Value: 65
I (1499) Output: Data Byte Number: 208, Value: aa
I (1499) Output: Data Byte Number: 209, Value: df
I (1509) Output: Data Byte Number: 210, Value: a6
I (1509) Output: Data Byte Number: 211, Value: 7b
I (1519) Output: Data Byte Number: 212, Value: a3
I (1519) Output: Data Byte Number: 213, Value: 3b
I (1529) Output: Data Byte Number: 214, Value: a0
I (1529) Output: Data Byte Number: 215, Value: 16
I (1539) Output: Data Byte Number: 216, Value: 9d
I (1539) Output: Data Byte Number: 217, Value: 1e
I (1549) Output: Data Byte Number: 218, Value: 9a
I (1559) Output: Data Byte Number: 219, Value: 43
I (1559) Output: Data Byte Number: 220, Value: 97
I (1569) Output: Data Byte Number: 221, Value: 95
I (1569) Output: Data Byte Number: 222, Value: 94
I (1579) Output: Data Byte Number: 223, Value: 8
I (1579) Output: Data Byte Number: 224, Value: 92
I (1589) Output: Data Byte Number: 225, Value: a7
I (1589) Output: Data Byte Number: 226, Value: 8f
I (1599) Output: Data Byte Number: 227, Value: 6a
I (1599) Output: Data Byte Number: 228, Value: 8d
I (1609) Output: Data Byte Number: 229, Value: 5e
I (1609) Output: Data Byte Number: 230, Value: 8b
I (1619) Output: Data Byte Number: 231, Value: 72
I (1619) Output: Data Byte Number: 232, Value: 89
I (1629) Output: Data Byte Number: 233, Value: be
I (1639) Output: Data Byte Number: 234, Value: 87
I (1639) Output: Data Byte Number: 235, Value: 26
I (1649) Output: Data Byte Number: 236, Value: 86
I (1649) Output: Data Byte Number: 237, Value: c8
I (1659) Output: Data Byte Number: 238, Value: 84
I (1659) Output: Data Byte Number: 239, Value: 8f
I (1669) Output: Data Byte Number: 240, Value: 83
I (1669) Output: Data Byte Number: 241, Value: 85
I (1679) Output: Data Byte Number: 242, Value: 82
I (1679) Output: Data Byte Number: 243, Value: aa
I (1689) Output: Data Byte Number: 244, Value: 81
I (1689) Output: Data Byte Number: 245, Value: f6
I (1699) Output: Data Byte Number: 246, Value: 80
I (1709) Output: Data Byte Number: 247, Value: 7d
I (1709) Output: Data Byte Number: 248, Value: 80
I (1719) Output: Data Byte Number: 249, Value: 23
I (1719) Output: Data Byte Number: 250, Value: 80
I (1729) Output: Data Byte Number: 251, Value: 3
I (1729) Output: Data Byte Number: 252, Value: 80
I (1739) Output: Data Byte Number: 253, Value: d
I (1739) Output: Data Byte Number: 254, Value: 80
I (1749) Output: Data Byte Number: 255, Value: 43
I (1749) Output: Data Byte Number: 256, Value: 80
I (1759) Output: Data Byte Number: 257, Value: aa
I (1759) Output: Data Byte Number: 258, Value: 80
I (1769) Output: Data Byte Number: 259, Value: 43
I (1779) Output: Data Byte Number: 260, Value: 81
I (1779) Output: Data Byte Number: 261, Value: fd
I (1789) Output: Data Byte Number: 262, Value: 81
I (1789) Output: Data Byte Number: 263, Value: f7
I (1799) Output: Data Byte Number: 264, Value: 82
I (1799) Output: Data Byte Number: 265, Value: e
I (1809) Output: Data Byte Number: 266, Value: 84
I (1809) Output: Data Byte Number: 267, Value: 5a
I (1819) Output: Data Byte Number: 268, Value: 85
I (1819) Output: Data Byte Number: 269, Value: d3
I (1829) Output: Data Byte Number: 270, Value: 86
I (1829) Output: Data Byte Number: 271, Value: 72
I (1839) Output: Data Byte Number: 272, Value: 88
I (1849) Output: Data Byte Number: 273, Value: 43
I (1849) Output: Data Byte Number: 274, Value: 8a
I (1859) Output: Data Byte Number: 275, Value: 3a
I (1859) Output: Data Byte Number: 276, Value: 8c
I (1869) Output: Data Byte Number: 277, Value: 5d
I (1869) Output: Data Byte Number: 278, Value: 8e
I (1879) Output: Data Byte Number: 279, Value: aa
I (1879) Output: Data Byte Number: 280, Value: 90
I (1889) Output: Data Byte Number: 281, Value: 1b
I (1889) Output: Data Byte Number: 282, Value: 93
I (1899) Output: Data Byte Number: 283, Value: bb
I (1899) Output: Data Byte Number: 284, Value: 95
I (1909) Output: Data Byte Number: 285, Value: 78
I (1919) Output: Data Byte Number: 286, Value: 98
I (1919) Output: Data Byte Number: 287, Value: 62
I (1929) Output: Data Byte Number: 288, Value: 9b
I (1929) Output: Data Byte Number: 289, Value: 6f
I (1939) Output: Data Byte Number: 290, Value: 9e
I (1939) Output: Data Byte Number: 291, Value: 9d
I (1949) Output: Data Byte Number: 292, Value: a1
I (1949) Output: Data Byte Number: 293, Value: ed
I (1959) Output: Data Byte Number: 294, Value: a4
I (1959) Output: Data Byte Number: 295, Value: 63
I (1969) Output: Data Byte Number: 296, Value: a8
I (1969) Output: Data Byte Number: 297, Value: ee
I (1979) Output: Data Byte Number: 298, Value: ab
I (1989) Output: Data Byte Number: 299, Value: aa
I (1989) Output: Data Byte Number: 300, Value: af
I (1999) Output: Data Byte Number: 301, Value: 6c
I (1999) Output: Data Byte Number: 302, Value: b3
I (2009) Output: Data Byte Number: 303, Value: 5d
I (2009) Output: Data Byte Number: 304, Value: b7
I (2019) Output: Data Byte Number: 305, Value: 5d
I (2019) Output: Data Byte Number: 306, Value: bb
I (2029) Output: Data Byte Number: 307, Value: 7b
I (2029) Output: Data Byte Number: 308, Value: bf
I (2039) Output: Data Byte Number: 309, Value: ae
I (2039) Output: Data Byte Number: 310, Value: c3
I (2049) Output: Data Byte Number: 311, Value: fb
I (2059) Output: Data Byte Number: 312, Value: c7
I (2059) Output: Data Byte Number: 313, Value: 53
I (2069) Output: Data Byte Number: 314, Value: cc
I (2069) Output: Data Byte Number: 315, Value: cb
I (2079) Output: Data Byte Number: 316, Value: d0
I (2079) Output: Data Byte Number: 317, Value: 46
I (2089) Output: Data Byte Number: 318, Value: d5
I (2089) Output: Data Byte Number: 319, Value: db
I (2099) Output: Data Byte Number: 320, Value: d9
I (2099) Output: Data Byte Number: 321, Value: 7b
I (2109) Output: Data Byte Number: 322, Value: de
I (2109) Output: Data Byte Number: 323, Value: 25
I (2119) Output: Data Byte Number: 324, Value: e3
I (2129) Output: Data Byte Number: 325, Value: d9
I (2129) Output: Data Byte Number: 326, Value: e7
I (2139) Output: Data Byte Number: 327, Value: 9b
I (2139) Output: Data Byte Number: 328, Value: ec
I (2149) Output: Data Byte Number: 329, Value: 5d
I (2149) Output: Data Byte Number: 330, Value: f1
I (2159) Output: Data Byte Number: 331, Value: 2a
I (2159) Output: Data Byte Number: 332, Value: f6
I (2169) Output: Data Byte Number: 333, Value: f9
I (2169) Output: Data Byte Number: 334, Value: fa
I (2179) Output: Data Byte Number: 335, Value: c5
I (2179) Output: Data Byte Number: 336, Value: ff
I (2189) Output: Data Byte Number: 337, Value: 9c
I (2199) Output: Data Byte Number: 338, Value: 4
I (2199) Output: Data Byte Number: 339, Value: 63
I (2209) Output: Data Byte Number: 340, Value: 9
I (2209) Output: Data Byte Number: 341, Value: 35
I (2219) Output: Data Byte Number: 342, Value: e
I (2219) Output: Data Byte Number: 343, Value: f6
I (2229) Output: Data Byte Number: 344, Value: 12
I (2229) Output: Data Byte Number: 345, Value: b8
I (2239) Output: Data Byte Number: 346, Value: 17
I (2239) Output: Data Byte Number: 347, Value: 6e
I (2249) Output: Data Byte Number: 348, Value: 1c
I (2249) Output: Data Byte Number: 349, Value: 1b
I (2259) Output: Data Byte Number: 350, Value: 21
I (2259) Output: Data Byte Number: 351, Value: b9
I (2269) Output: Data Byte Number: 352, Value: 25
I (2279) Output: Data Byte Number: 353, Value: 4f
I (2279) Output: Data Byte Number: 354, Value: 2a
I (2289) Output: Data Byte Number: 355, Value: cd
I (2289) Output: Data Byte Number: 356, Value: 2e
I (2299) Output: Data Byte Number: 357, Value: 47
I (2299) Output: Data Byte Number: 358, Value: 33
I (2309) Output: Data Byte Number: 359, Value: a0
I (2309) Output: Data Byte Number: 360, Value: 37
I (2319) Output: Data Byte Number: 361, Value: f0
I (2319) Output: Data Byte Number: 362, Value: 3b
I (2329) Output: Data Byte Number: 363, Value: 24
I (2329) Output: Data Byte Number: 364, Value: 40
I (2339) Output: Data Byte Number: 365, Value: 43
I (2349) Output: Data Byte Number: 366, Value: 44
I (2349) Output: Data Byte Number: 367, Value: 49
I (2359) Output: Data Byte Number: 368, Value: 48
I (2359) Output: Data Byte Number: 369, Value: 36
I (2369) Output: Data Byte Number: 370, Value: 4c
I (2369) Output: Data Byte Number: 371, Value: 4
I (2379) Output: Data Byte Number: 372, Value: 50
I (2379) Output: Data Byte Number: 373, Value: b8
I (2389) Output: Data Byte Number: 374, Value: 53
I (2389) Output: Data Byte Number: 375, Value: 50
I (2399) Output: Data Byte Number: 376, Value: 57
I (2399) Output: Data Byte Number: 377, Value: c0
I (2409) Output: Data Byte Number: 378, Value: 5a
I (2419) Output: Data Byte Number: 379, Value: 1a
I (2419) Output: Data Byte Number: 380, Value: 5e
I (2429) Output: Data Byte Number: 381, Value: 47
I (2429) Output: Data Byte Number: 382, Value: 61
I (2439) Output: Data Byte Number: 383, Value: 5a
I (2439) Output: Data Byte Number: 384, Value: 64
I (2449) Output: Data Byte Number: 385, Value: 42
I (2449) Output: Data Byte Number: 386, Value: 67
I (2459) Output: Data Byte Number: 387, Value: c
I (2459) Output: Data Byte Number: 388, Value: 6a
I (2469) Output: Data Byte Number: 389, Value: a4
I (2469) Output: Data Byte Number: 390, Value: 6c
I (2479) Output: Data Byte Number: 391, Value: 25
I (2489) Output: Data Byte Number: 392, Value: 6f
I (2489) Output: Data Byte Number: 393, Value: 69
I (2499) Output: Data Byte Number: 394, Value: 71
I (2499) Output: Data Byte Number: 395, Value: 9a
I (2509) Output: Data Byte Number: 396, Value: 73
I (2509) Output: Data Byte Number: 397, Value: 8f
I (2519) Output: Data Byte Number: 398, Value: 75
I (2519) Output: Data Byte Number: 399, Value: 66
I (2529) Output: Data Byte Number: 400, Value: 77
I (2529) Output: Data Byte Number: 401, Value: a
I (2539) Output: Data Byte Number: 402, Value: 0    <---------- RIGHT HERE 
I (2539) Output: Data Byte Number: 403, Value: 0
I (2549) Output: Data Byte Number: 404, Value: 0
I (2549) Output: Data Byte Number: 405, Value: 0
I (2559) Output: Data Byte Number: 406, Value: 0
I (2569) Output: Data Byte Number: 407, Value: 0
I (2569) Output: Data Byte Number: 408, Value: 0
I (2579) Output: Data Byte Number: 409, Value: 0
I (2579) Output: Data Byte Number: 410, Value: 0
I (2589) Output: Data Byte Number: 411, Value: 0
I (2589) Output: Data Byte Number: 412, Value: 0
I (2599) Output: Data Byte Number: 413, Value: 0
I (2599) Output: Data Byte Number: 414, Value: 0
I (2609) Output: Data Byte Number: 415, Value: 0
I (2609) Output: Data Byte Number: 416, Value: 0
I (2619) Output: Data Byte Number: 417, Value: 0
I (2619) Output: Data Byte Number: 418, Value: 0
I (2629) Output: Data Byte Number: 419, Value: 0
I (2629) Output: Data Byte Number: 420, Value: 0
I (2639) Output: Data Byte Number: 421, Value: 0
I (2639) Output: Data Byte Number: 422, Value: 0
I (2649) Output: Data Byte Number: 423, Value: 0
I (2659) Output: Data Byte Number: 424, Value: 0
I (2659) Output: Data Byte Number: 425, Value: 0
I (2669) Output: Data Byte Number: 426, Value: 0
I (2669) Output: Data Byte Number: 427, Value: 0
I (2679) Output: Data Byte Number: 428, Value: 0
I (2679) Output: Data Byte Number: 429, Value: 0
I (2689) Output: Data Byte Number: 430, Value: 0
I (2689) Output: Data Byte Number: 431, Value: 0
I (2699) Output: Data Byte Number: 432, Value: 0
I (2699) Output: Data Byte Number: 433, Value: 0
I (2709) Output: Data Byte Number: 434, Value: 0
I (2709) Output: Data Byte Number: 435, Value: 0
... I cut it here but it keeps going.

The answer was to use "fread" instead of "fgets".

This is because fgets will stop at the newline character (0x0A).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM