Я пытаюсь отправить содержимое файла Intel Hex по последовательному соединению на микроконтроллер, который будет обрабатывать каждую отправленную строку и программировать их в памяти по мере необходимости.Код обработки ожидает отправки строк по мере их появления в шестнадцатеричном файле, включая символы новой строки в конце каждой строки.
Этот код выполняется в Visual Studio 2013 на ПК с Windows 10;для справки, микроконтроллер представляет собой модель ARM Cortex-M0 +.
Однако следующий код, похоже, не обрабатывает файл записей Intel Hex так, как я ожидал.
...
int count = 0;
char hexchar;
unsigned char Buffer[69]; // 69 is max ascii hex read length for microcontroller
ifstream hexfile("pdu.hex");
while (hexfile.get(hexchar))
{
Buffer[count] = hexchar;
count++;
if (hexchar == '\n')
{
for (int i = 0; i < count; i++)
{
printf("%c", Buffer[i]);
}
serial_tx_function(Buffer); // microcontroller requires unsigned char
count = 0;
}
}
...
В настоящее время вызов последовательной передачи закомментирован, и цикл for предназначен для проверки правильности чтения файла.Я ожидаю увидеть каждую строку шестнадцатеричного файла, распечатанного на терминал.Вместо этого я ничего не получаю.Любые идеи?
РЕДАКТИРОВАТЬ: После дальнейшего исследования я определил, что программа даже не входит в цикл while, потому что файл не открывается.Я не знаю, почему это так, поскольку файл существует и может быть открыт в других программах, таких как Блокнот.Однако я не очень разбираюсь с файловым вводом / выводом, поэтому я могу что-то упустить.