чтение Uart в C, мусор только путем объявления массива char - PullRequest
0 голосов
/ 10 мая 2018

Я читаю и пишу через Uart, код работает хорошо, мусора ноль. Но я объявляю следующий массив:

        char size_buff[8];
        char width_buff[8];
        char height_buff[8];
        char planes_buff[5];
        char bitsperpixel_buff[8];
        char compression_buff[5];
        char sizeimage_buff[8];
        char xpixelsprmeter_buff[5];
        char ypixelsprmeter_buff[5];
        char colorsused_buff[5];
        char colorsimportant_buff[5];

Теперь я снова читаю Уарт, не внося никаких изменений, и получаю мусор в показаниях. В качестве решения я изменяю размеры массивов, и они остаются следующими: char size_buff [10]; ... char colorsimportant_buff [10];

Теперь показания выполняются корректно, без мусора, но я не знаю, почему, просто изменяя размер массива переменных, которые я не использую, заставляю UART читать мусор.

1 Ответ

0 голосов
/ 10 мая 2018

Вы можете начать с инициализированного массива с 0, чтобы избежать мусора на первом месте.Вам может понадобиться добавить код в описание, если вы получаете мусор после вызовов UART.

  char size_buff[8]={0};
  char width_buff[8]={0};
  char height_buff[8]={0};
  ...
...