Building ....при помощи лома. Вариации на тему COM порта от дилетанта
(1/1)
Мурман:
По ходу жизни требуется сделать инструментарий для демонстрации локальной задачи на микроконтроллере. Время для этого толком не дается. Да и начальство считает, что задача пустяковая..
За основу взяты исходники известного проекта. Мне нужно вывести на экран два ответа от внешнего устройства в бинарном формате. Я поставил заглушку на порт и предполагал увидеть все, что я отправляю в качестве запроса. Добавил свою функцию преобразования байта (а он всего один в 1 сек!!!), но к своему удивлению увидел только старший ниббл кода, а второй байт только сердцевину от ожидаемых 8ми знаков. Ради интереса решил глянуть младший ниббл, вернув из функции указатель &sss[4]. Такое вообще не понравилось программе,-полное молчание в окне!!!! ....Отладчик не пускает в просмотр буфера.
Прошу высказать мнение. Где же причина такого поведения? Благодарю заранее всех отозвавшихся! ::) Раньше на Builder C++ не пробовал экспериментировать и потому не ограничивайтесь в выражениях.... ???
Вот такой экспромт!!!
Мурман:
Вот тут исходные проекты.
OVE:
Вы из функции char* convertcode (unsigned char * str) возвращаете указатель на локальную структуру (return &sss[0]), содержимое которой, после выхода из функции будет неопределенным. Попробуйте объявить char sss[9] как глобальную структуру, или, как вариант, при объявлении внутри функции укажите static char sss[9].
Мурман:
Цитата: OVE от 18 Март 2015, 11:26:29
Вы из функции char* convertcode (unsigned char * str) возвращаете указатель на локальную структуру (return &sss[0]), содержимое которой, после выхода из функции будет неопределенным. Попробуйте объявить char sss[9] как глобальную структуру, или, как вариант, при объявлении внутри функции укажите static char sss[9].
Спасибо за наводку. Я об этом знал, но что-то подумал, что раз работа через указатели, то проблемы не будет.
В итоге все заработало! Немного и зменил тип одной из переменных. Можно глянуть рабочий проект для освоения... =)
Мурман:
Вот еще один рабочий вариант(под другую задачу)
Навигация