Решил сделать некую сигнализацию, которая будет отправлять смс по получению сигнала. И все, больше никаких функций.
Дождался модуль из Китая, собрал плату, на макетке и даже нагулялся в терминале ком порта компьютера.
И, не поверите... Даже смс отправляю по получению сигнала.
Но это все ерунда, по сравнению с опухшей головой от не понимания работы USART.
Вернее, что то удалось понять, но проблема осталась.
А суть собственно в том, что я не могу получить ответа от модуля. Даже не представляю как это сделать.
Я перепробовал кучу вариантов, находящихся в инете, но там в основном под ардуину....
Ай, ладно, разнылся.
Вот так я принимаю данные. (Александр Писанец)
Спойлер
Код: Выделить всё
ISR(USART_RXC_vect)
{
register unsigned char Temp = UDR; // забираем принятый байт данных
if (( Temp != 0x0d) & (Temp != 0x0a)) // пропускаем символы \r\n
{
bufGsm1[numberRX++] = Temp; // сохраняем принятые данные
}
if ( numberRX > addressTemp) // не проверяем первые два символа 0x0d,0x0a
{
if ( Temp == 0x0a) // принят 0x0A, зафиксирован конец пакета данных
{
bufGsm1[numberRX++] = '$'; // разделительный символ
addressTemp = numberRX;
the_data_has++; // принятое количество команд
}
}
}И все, дальше мне надо узнать что я тут принял,
К примеру, я должен получить ответ на какую то команду - ОК
Как мне понять что ОК пришел???
Помогите пожалуйста. А то ведь так и лопнет башка,
не поняв элементарного.Спасибо...