перенес с SoftwareSerial - перестает работать
- Войдите на сайт для отправки комментариев
Втр, 13/02/2018 - 16:39
в общем подключил ЖПС (библиотека TinyGPS)
через SoftwareSerial всё нормально работает
но я хочу использовать аппаратный Serial
соответственно подключаю на него ЖПС модуль
а в мониторе тишина....
даже из примера не работает
#include <TinyGPS.h> //#include <SoftwareSerial.h> TinyGPS gps; // Дискретные пины, к которым подключен GPS skgps //SoftwareSerial skgps(A1, A0); /*rx-tx*/ // Подключен к d0 - rx только (nano v3) от приемника взят tx void setup(){ // Скорость работы с GPS модулем (для skgps 9600) //skgps.begin(9600); Serial.begin(9600); // Выводим на экран текст о том, что идет поиск спутников Serial.println("Find satellites"); Serial.println(" Please Wait "); } float latp, lonp; //для запоминания прошлых точек float dist = 0; //путь void loop(){ bool newData = false; // Каждую секунду парсим GPS данные for (unsigned long start = millis(); millis() - start < 1000;) { while (Serial.available()){ char c = Serial.read(); if (gps.encode(c)) newData = true; } } if (newData){ float lat, lon; unsigned long age; int year; byte month, day, hour, minutes, second, hundredths; // Получаем координаты gps.f_get_position(&lat, &lon, &age); // Получаем дату и время gps.crack_datetime(&year, &month, &day, &hour, &minutes, &second, &hundredths, &age); // Строка 1 - широта Serial.print("Широта: "); Serial.println(lat*10000000); // стока 2 - долгота Serial.print("Долгота: "); Serial.println(lon*10000000); // Строка 3 - скорость км/ч Serial.print("Speed: "); Serial.print(gps.f_speed_kmph()); Serial.println(" "); // Строка 4 - количество спутников и высота в метрах Serial.print("Спутников:"); Serial.println(gps.satellites()); Serial.print(" Высота:"); Serial.print(gps.f_altitude()); Serial.println(" "); // Строка 5 - путь //(float lat1, float long1, float lat2, float long2) if(latp<1 || lonp<1 ) {latp=lat; lonp=lon; Serial.println("сброс ");} dist=dist+gps.distance_between(lat,lon,latp,lonp); Serial.print("Дистанция:"); Serial.print(lat);Serial.print(" ");Serial.print(lon); Serial.print(" ");Serial.print(latp); Serial.print(" ");Serial.print(lonp);Serial.print(" "); Serial.println(gps.distance_between(lat,lon,latp,lonp)); Serial.println(dist); latp=lat; lonp=lon; //dist = 0; //путь // Строка 3 ' - дата Serial.print("Дата:"); Serial.print(year); Serial.print("-"); Serial.print(month); Serial.print("-"); Serial.print(day); Serial.println(" "); // Строка 4 ' - время Serial.print("Время:"); Serial.print(hour); Serial.print(":"); Serial.print(minutes); Serial.print(":"); Serial.print(second); Serial.println(" "); Serial.println(" "); } }
изза чего может не работать через аппаратный вход?
В комменатриях написано "nano v3", это правда? Если так, то у Вас на одном интерфейсе сидят и gps, и Serial.print. Они дерустя между собой, оттого и не работают толком.
это я предполагал, но что им драться? ведь мне с ЖПС надо принимать только а в порт только выводить....
можно это както разрулить на одном порте?
Вы хотите подключить к одному устройству UART два других (по крайней мере RX ардуины Вы намерены подключить сразу к двум TX разных устройств).
Почитайте описание физического протокола UART и подумайте, можно так или нет.
но мне не надо к компу - устройство 1 - жпс
но даже так оно не идет
или встенный на плату преобразователь ch340 мешает работе даже без поключения к пк?
ок тогда подскажите другое - можно ли в software serial задать только 1 порт ТХ? дабы не тратить впустую пин RХ
Поумолчанию, в самых распространенных библиотеках - нет.
1. Можно поискать реализацию библиотеки, где выпилино, что вам не нужно (встречал как-то).
2. Можно порыться в своей, и самому выпилить.
3. Протокол очень простой - можно реализовать самому (в проектах для ATtyni13 есть несколько реализаций, тоже в инетах надо покопать).
ясно, значит выпилю сам
я щас столкнулся с другой проблемой - как отформатировать карту памяти хотябы в ФАТ 16
и да, карта на 8мб.....
ясно, значит выпилю сам
я щас столкнулся с другой проблемой - как отформатировать карту памяти хотябы в ФАТ 16
"Закат Солнца вручную" - картина неизвестного автора :)
да вы сами попробуйте 8мб карту форматить - на ней даже фат 16 не лезит... максимум фат12 (другой карты не нашлось под рукой)
да вы сами попробуйте 8мб карту форматить - на ней даже фат 16 не лезит... максимум фат12 (другой карты не нашлось под рукой)
Поищи повнимательней, а ещё лучше - выкинь нахер эти новомодные штучки, и юзай перфокарты - в двадцать первом веке - самое то, стоят в одном ряду с карточкой на 8 мегабайт.
да вы сами попробуйте 8мб карту форматить - на ней даже фат 16 не лезит... максимум фат12 (другой карты не нашлось под рукой)
ELITE, файловая система fat16 поддерживает объем не более 2 Гбайт (недокументрованно - до 4 Гбайт).
Единственное, что можно посоветовать - создать в каком-нибудь подходящем софте образ карты 2 Гбайта и этим же софтом впихнуть его на карту, после чено эта карта будет видна в системе как 2-гигабайтная.
да вы сами попробуйте 8мб карту форматить - на ней даже фат 16 не лезит... максимум фат12 (другой карты не нашлось под рукой)
ELITE, файловая система fat16 поддерживает объем не более 2 Гбайт (недокументрованно - до 4 Гбайт).
Единственное, что можно посоветовать - создать в каком-нибудь подходящем софте образ карты 2 Гбайта и этим же софтом впихнуть его на карту, после чено эта карта будет видна в системе как 2-гигабайтная.
и да фат16 - до 32мб
а 2Гб - это фат32
Где ж Вы такую карту нашли?
Думал, опечатка и читать следует 8Гб.
Кстати, на разметку fat16 нужно не более 256 кб, так что на 8 Мб вполне влезет.
И вообще, при кластере 512 байт fat16 должна начинаться уже с 2 Мб.