Вывод символов на последовательный порт в C - PullRequest
1 голос
/ 06 ноября 2011

Я пытаюсь использовать C для вывода символов из процессора pic32 в эмулятор терминала через последовательный порт. Пользователю будет предложено ввести строку, и все, что происходит, - это то, что символы будут отображаться на экране по мере ввода пользователем. Это только для настройки исходной программы, которую впоследствии можно будет использовать для выбора меню в реальном времени от пользователя. Пример ниже:

main()
{
   // 1. init the console serial port
   initU2();

   // 2. text prompt
   clrscr();
   home();    
   fputs("Enter some text: ", stdout);
   puts(stdout);

   // 3. main loop
   while (1)
   {
      // 3.1 read a full line of text
      getsn(stdout, sizeof(stdout));
      // 3.2 send a string to the serial port
      puts(stdout);
   } // main loop
} // main

Вот что я получаю в командной строке (независимо от ввода пользователя или нет):

Enter some text: ÿÿÿÿ

Я могу просто выводить символы на дисплей программы терминала, однако, если мне нужно ввести символы пользовательского типа, программа C, похоже, не отвечает. Любая помощь будет оценена!

1 Ответ

3 голосов
/ 06 ноября 2011

Вы писали:

fputs("Enter some text: ", stdout);
puts(stdout);

Я думаю, что ваш призыв к путам недействителен. В обычных библиотеках C puts ожидает, что будет передан указатель на строку, но вы передаете ей stdout, которая НЕ является строкой. В результате вы видите, что некоторые ненужные символы передаются по последовательному порту.

Попробуйте либо удалить строки puts, либо изменить код на:

puts("Enter some text: ");
...