реклама на сайте
подробности

 
 
> USART и NMEA
MarYuriy
сообщение Dec 28 2011, 13:54
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 20-11-10
Пользователь №: 61 036



Здравствуйте!

Надо ли преобразовывать как-то ASCII коды, которые получаю по USART, (типичная последовательность NMEA $GPZDA,102433.00,28,12,2011,,*6A, из которой мне нужны только 2-5 поля)?
(я так понимаю, что не надо)

Не подскажите более удачный алгоритм считывания символов с USARTa, кроме как перечисление if'ов?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andrewlekar
сообщение Dec 29 2011, 05:02
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Я 3 раза перечитал, но так и не понял сути вопроса.
Цитата
Надо ли преобразовывать как-то ASCII коды, которые получаю по USART

Ну если начальство сказало, что надо, то преобразовывайте.
Цитата
Не подскажите более удачный алгоритм считывания символов с USARTa, кроме как перечисление if'ов?

Более удачный алгоритм - считывать с юсарта без ифов. Я вот считываю и перечисления ифов нет. Делаю я это так: считываю байт, если приёмник не пуст, повторяю в цикле.
Go to the top of the page
 
+Quote Post
MarYuriy
сообщение Dec 29 2011, 11:39
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 20-11-10
Пользователь №: 61 036



Цитата(andrewlekar @ Dec 29 2011, 08:02) *
Я 3 раза перечитал, но так и не понял сути вопроса.


Потому я такие вопросы и задаю, что новичок как в С++, так и в программировании контроллеров. Занимаюсь ими месяцев 8-9, периодически отрываясь от основной работы.

Цитата
Ну если начальство сказало, что надо, то преобразовывайте.


Начальство тут не при чём, тут дело в непонимании.

Мой алгоритм примерно выглядит так:
CODE

while (!Character==32)
{
while ( ! (USART1->SR & USART_SR_RXNE) ) ; // ждать, пока символ не получен
{
CharNum++;

if (CharNum==1)
{
USART1->SR &=~ USART_SR_RXNE;} // пропустить 1-ый символ
if (CharNum==3)
{
Character = (USART1->DR & 0x1FF ) ;} // считать 2-ой символ
.....


Получается, что я каждый символ должен посчитать, а их 32, через оператор if.

Цитата
Следующий этап - синтаксический анализ. В этом случае он тривиален, из входного потока лексем просто лишние выбрасываются, нужные сохраняются.


Цитата
Делаю я это так: считываю байт, если приёмник не пуст, повторяю в цикле.


Вот я и спрашиваю, как это сделать (на уровне кода)? можно ли это упростить с помощью языка? А не использовать для этого 60 строчек кода.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MarYuriy   USART и NMEA   Dec 28 2011, 13:54
|- - _Артём_   Цитата(MarYuriy @ Dec 29 2011, 13:39) Пот...   Dec 29 2011, 12:14
|- - MarYuriy   Цитата(_Артём_ @ Dec 29 2011, 15:14) Непо...   Dec 29 2011, 13:00
|- - _Артём_   Цитата(MarYuriy @ Dec 29 2011, 15:00) Я о...   Dec 29 2011, 16:15
- - SSerge   Повышаем градус абстракции! От GPS-модуля ведь...   Dec 29 2011, 06:20
- - MKdemiurg   Ты ЩО дурный (С) Без обид У тебя сообщение нач...   Dec 29 2011, 11:56
- - Kuzmi4   2 MarYuriy Там кстати не всё железо даёт sentence ...   Dec 29 2011, 12:08
- - andrewlekar   Цитатаwhile (!CharNum==32) Во-первых, такой ко...   Dec 30 2011, 04:46
|- - MarYuriy   _Артём_, я использую Trimble Resolusion-T. Если да...   Dec 30 2011, 12:03
- - lexanet   Посмотрите LPC1768. Установка времени. (WEB&GP...   Jan 6 2012, 17:11
- - MarYuriy   Как организовать буфер я нашёл. А вот как работать...   Jan 10 2012, 17:43
|- - Cosmojam   Цитата(MarYuriy @ Jan 10 2012, 20:43) Как...   Jan 10 2012, 18:22
|- - WHALE   Цитата(Cosmojam @ Jan 10 2012, 22:22) Чуд...   Jan 11 2012, 04:24
|- - Cosmojam   Цитата(WHALE @ Jan 11 2012, 07:24) Та лад...   Jan 11 2012, 09:05
|- - _Артём_   Цитата(Cosmojam @ Jan 11 2012, 11:05) Там...   Jan 12 2012, 11:44
- - lexanet   Не такая и тяжелая эта операция. У меня счас буфер...   Jan 11 2012, 05:15
- - Cosmojam   Это что-то вроде дерева получается, должно быть оч...   Jan 13 2012, 13:03
|- - _Артём_   Цитата(Cosmojam @ Jan 13 2012, 15:03) А е...   Jan 13 2012, 14:36
- - kan35   В свое время столкнулся с задачей разбора RMC и GG...   Jan 14 2012, 07:17
- - Alexey K   Решил задать два вопроса здесь чтобы не плодить те...   Jun 13 2012, 06:30
|- - V_G   Цитата(Alexey K @ Jun 13 2012, 16:30) Доп...   Jun 13 2012, 07:01
- - Alexey K   Данные я формирую так что по первому пункту первом...   Jun 13 2012, 07:12


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 04:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016