Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.11.2016, 21:44   #1
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Передача шестнадцатеричных данных через uart

Есть у меня задача управлять с ардуино GPS приемником. Связь по uart в данном конкретном случае библиотека SoftSerial. Нужно передать приемнику команду в шестнадцатеричных цифрах, ну например "B5 62 06 08 06 00 88 13 01 00 01 00 B1 000D 49". Кому не сложно напишите пример. Что-то тупо я опять путаюсь с типами данных
Bulatovor вне форума   Ответить с цитированием
Старый 12.11.2016, 05:51   #2
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Передача шестнадцатеричных данных через uart

Наверно как-то так:

PHP код:
Serial.write(0xB5);
Serial.write(0x62);
Serial.write(0x06);
... 
ASCII таблица
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Старый 12.11.2016, 12:30   #3
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: Передача шестнадцатеричных данных через uart

Спасибо. перепсал
PHP код:
void settingps()
delay(2000);// даем ему загрузиться
//B5 62 06 08 06 00 88 13 01 00 01 00 B1 000D 49
SerialGPS.write(0xB5);
SerialGPS.write(0x62);
SerialGPS.write(0x06);

SerialGPS.write(0x08);
SerialGPS.write(0x06);
SerialGPS.write(0x00); 
SerialGPS.write(0x88);
SerialGPS.write(0x13);
SerialGPS.write(0x01); 
SerialGPS.write(0x00);
SerialGPS.write(0x01);
SerialGPS.write(0x00);
SerialGPS.write(0xB1);
SerialGPS.write(0x000D);
SerialGPS.write(0x49); 
ругается на строчки со значенем 0x00
Цитата:
exit status 1
call of overloaded 'write(int)' is ambiguous //состояние выхода 1
вызов перегруженных 'писал(инт) является неоднозначным
и еще меня смущает вот это - не уверен в правильности - в таблицах такого не нашел
Bulatovor вне форума   Ответить с цитированием
Старый 12.11.2016, 12:42   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Передача шестнадцатеричных данных через uart

Можно двумя строчками
PHP код:
uint8_t buf[] = {0xB50x620x060x080x060x000x880x13 };
Serial.write(bufsizeof(buf)) 
Admin вне форума   Ответить с цитированием
Старый 12.11.2016, 12:53   #5
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: Передача шестнадцатеричных данных через uart

Цитата:
Сообщение от Admin Посмотреть сообщение
Можно двумя строчками
PHP код:
uint8_t buf[] = {0xB50x620x060x080x060x000x880x13 };
Serial.write(bufsizeof(buf)) 
Попробовал, что-то не реагирует
PHP код:
void settingps()
delay(10000);// даем ему загрузиться
//B5 62 06 08 06 00 88 13 01 00 01 00 B1 000D 49
uint8_t buf[] = {0xB50x620x060x080x060x000x880x130x010x000x010x000xB10x000D0x49 }; 
SerialGPS.write(bufsizeof(buf)); 
Bulatovor вне форума   Ответить с цитированием
Старый 12.11.2016, 13:10   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Передача шестнадцатеричных данных через uart

SerialGPS.write - это софтсериал?
Admin вне форума   Ответить с цитированием
Старый 12.11.2016, 13:26   #7
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: Передача шестнадцатеричных данных через uart

Цитата:
Сообщение от Admin Посмотреть сообщение
SerialGPS.write - это софтсериал?
да - он, да еще на 9600 - больше приемник не поддерживает
Bulatovor вне форума   Ответить с цитированием
Старый 12.11.2016, 13:28   #8
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Передача шестнадцатеричных данных через uart

Дай ссылку на инфу по командам GPS приемника
Admin вне форума   Ответить с цитированием
Старый 12.11.2016, 13:59   #9
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: Передача шестнадцатеричных данных через uart

GPS модуль такой. Книжек по нему не нашел. Так отрывочные сведения из сети. Параметры модуля меняются с компа через их прогу u-center. Она же показывает данные которые передаются модулю при выполнении изменения параметров. Задача была эти данные слать ардуиной.
Вообщем нашел я ошибку - сомнительное "000D" - это не часть команды, а номер строки , т.е. правильная команда на передачу данных раз в 5 сек "B5 62 06 08 06 00 88 13 01 00 01 00 B1 49"
Спасибо за помощь - усе заработало
Bulatovor вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 3 (пользователей: 0 , гостей: 3)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:21. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика