簡體   English   中英

在 C/C++ 中讀取 .WAV 文件數據的問題

[英]Trouble Reading Data of .WAV file in C/C++

我正在嘗試使用 ESP32s2 來讀取 SD 卡上的 .WAV 文件。

為此,我在 Audacity 中創建了一個 256Hz、1sec、16BIT PCM、44.1Khz 采樣率的 .WAV 文件。 256Hz Wav &導出設置

我能夠很好地解析標頭,但是在數據部分的第 400 個字節處,它變為全零(請參見下面的輸出)。

我已經針對我在網上找到的其他解析器測試了該文件,它顯示了整個文件中的數據。 我還仔細檢查了 SD 卡上的文件以確保它沒有損壞。

請有人幫我弄清楚為什么我得到所有這些零。

這是我的代碼:

#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);

}

這是我的輸出: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.

答案是使用“fread”而不是“fgets”。

這是因為 fgets 將在換行符 (0x0A) 處停止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM