Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 12.10.2017, 21:30  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Приём ответов от gsm модема

Подключил usb-›rs232 На модем уходит четко "AT\r", а приходит с модема "яAT\r +CME: ERROR: 58\r\n"

С железом все ок, как уже говорил, если подрубить модем к компу, то из терминала управление хорошо работает, без вот таких глюков.
Реклама:

Последний раз редактировалось supercelt; 12.10.2017 в 21:35.
supercelt вне форума  
Непрочитано 12.10.2017, 21:50  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,771 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Приём ответов от gsm модема

Сообщение от supercelt Посмотреть сообщение
На модем уходит четко "AT\r", а приходит с модема "яAT\r +CME: ERROR: 58\r\n"
А что с Rx? Какие настройки?

Хотя... Rx тут ни при чем. Смотрите уровень Тх при отсутствии передачи.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.

Последний раз редактировалось akegor; 12.10.2017 в 21:57.
akegor вне форума  
Непрочитано 12.10.2017, 21:55  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Приём ответов от gsm модема

Сообщение от akegor Посмотреть сообщение
А что с Rx? Какие настройки?
Код:
RCC-›AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
	__NOP();
	GPIOA-›MODER |= GPIO_MODER_MODER9_1 | GPIO_MODER_MODER10_1;/* | GPIO_MODER_MODER11_1 | GPIO_MODER_MODER12_1;*/ //альтернативная функуия для выводов, на которых сидит USART1
	GPIOA-›AFR[1] = (uint32_t)0x770; //0x77770; //AFRH = AFR[1], AF7 - USART1 (rx,tx,cts,rts/pa9, pa10, pa11, pa12) alt table function
	USART1-›BRR = 0x2D9; //скорость 115200
	USART1-›CR1 |= USART_CR1_RXNEIE | USART_CR1_RE | USART_CR1_TE; //Разрешаем локальные прерывания по приёму USART //Включаем передатчик и приёмник
supercelt вне форума  
Непрочитано 13.10.2017, 00:29  
usr10000
Временная регистрация
 
Регистрация: 12.11.2008
Адрес: LT
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 33 раз(а) в 23 сообщении(ях)
usr10000 на пути к лучшему
По умолчанию Re: Приём ответов от gsm модема

Сообщение от supercelt Посмотреть сообщение
Подключил usb-›rs232 На модем уходит четко "AT\r", а приходит с модема "яAT\r +CME: ERROR: 58\r\n"
Можно попробовать установить двойной стоп бит. Или сделать задержку между выводом отдельных символов.
usr10000 вне форума  
Непрочитано 13.10.2017, 00:30  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Приём ответов от gsm модема

Слушайте, а такой вопрос: Если допустим у меня настроен аппаратный контроль, ну....альтернативная функция и так далее, то как мне принудительно выставить RTS руками? что бы притормозить передачу от устройства на то время пока я что-то там делаю... Через обычные BSSR или ODR регистры? Или они не будут действовать, потому что выводы сидят на альтернативной функции?

Последний раз редактировалось supercelt; 13.10.2017 в 00:36.
supercelt вне форума  
Непрочитано 13.10.2017, 04:05  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Приём ответов от gsm модема

Переключи вывод назад в GPIO/AF0 и делай что хочешь.
Hives вне форума  
Непрочитано 14.10.2017, 00:31  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Приём ответов от gsm модема

Сделал, RTS отлично справляется. Спасибо. Ещё вопросик. Вы более опытные, просто подскажите как будет быстрее? Я все о той же кофемолке, в которую отправляются данные из приёмного буфера для парсинга.

Условия не изменились. Мне приходят строки вида:

\r\n Заголовок \r\n \r\n Данные \r\n \r\n Статус (ОК или ERROR)\r\n

Вот я наполняю буфер:

Код:
void USART1_IRQHandler(void){
	if(USART1-›SR & USART_SR_RXNE){
		gsm_buffer_receive[gsm_buffer_in] = USART1-›DR;
		gsm_buffer_in++;
		gsm_buffer_count++;
	}
}
2 варианта:
Первый)
Вот в этом прерывании посимвольно проверять, если встретили "\n", то поднимаем RTS и ставим флаг отправки в кофемолку. А уже в майне ловим этот флаг и парсим то что пришло в буфер. Естественно до ОК мы ещё не дойдём и проверив, что там ОК нету, опускаем RTS и продолжаем приём до следующего "\n". И так повторятся пока мы не увидим ОК. Естественно + реализовать таймаут.

Второй)
В прерывании просто тупо наполняем буфер и все, а в майне в while(1) ставим функцию чтения буфера. И при каждой итерации майна ищем в буфере ОК. Если нам просто нужен был ОК, то делаем что-то и уходим. Если ждали ответа с данными, то как получили ОК, то поднимаем RTS и ответ в кофемолку. Вытащили данные, опустили RTS.

Короче Склифасовский, ну вы поняли. ))) Как будет быстрее и экономичнее? каждый раз проверять в майне или по флагу от прерывания?
В флаге есть например минус, допустим, если "\n" потеряется.... но есть же таймаут. Вобщем такие мысли на ночь)
Всем здоровья!)
supercelt вне форума  
Непрочитано 14.10.2017, 00:57  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 681
Сказал спасибо: 362
Сказали Спасибо 755 раз(а) в 358 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Приём ответов от gsm модема

supercelt, вечер, пятница, 13-е..
Утро вечера мудренЕе
j-Roger вне форума  
Непрочитано 14.10.2017, 03:29  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Приём ответов от gsm модема

Только по второму варианту.
И концом строки считать и "\r" и "\n", затем удаление из строки начальных/конечных пробелов, анализ строки на пустоту и передача в обработку остатка.
Hives вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GSM модем: как остаться на связи когда вокруг полно работающих модемов GSM Mike121234 Автоматика и аппаратура связи 6 05.07.2015 11:09
GSM дозвонщик / попроще ArtemonX Микроконтроллеры, АЦП, память и т.д 16 13.10.2011 21:51
Помогите с сопряжением GSM модема и FXS Sash_g87 Автоматика и аппаратура связи 2 08.09.2011 15:29


Часовой пояс GMT +4, время: 15:12.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot