Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Прием нескольких байт по UART |
Цитата |
|
добрый день При отправки через буфер почему то в симуляторе proteus выводиться предупреждение. Якобы я пытаюсь писать на не пустой буфер UDR (хотя на реальной железе потерь не вижу )
12131312.PNG [ 8.28 КБ | Просмотров: 2108 ]
добрый день При отправки через буфер почему то в симуляторе proteus выводиться предупреждение. Якобы я пытаюсь писать на не пустой буфер UDR (хотя на реальной железе потерь не вижу ) [attachment=0]12131312.PNG[/attachment]
|
|
|
 |
Добавлено: 10 июл 2016, 15:19 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Прием нескольких байт по UART |
Цитата |
|
1 Алгоритм шаблона не стопорит программу на время пересылки всей строки. Все передача идет в фоне. Программа прерывается (прерывание USART0_DR_Empty) лишь на время необходимое для передачи очередного байта из буфера в регистр передачи UDR.
2 И, соответственно, USART0_DR_Empty аппаратно вызывается само когда можно засылать очередной байт.
1 Алгоритм шаблона не стопорит программу на время пересылки всей строки. Все передача идет в фоне. Программа прерывается (прерывание USART0_DR_Empty) лишь на время необходимое для передачи очередного байта из буфера в регистр передачи UDR.
2 И, соответственно, USART0_DR_Empty аппаратно вызывается само когда можно засылать очередной байт.
|
|
|
 |
Добавлено: 03 июл 2016, 16:29 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Прием нескольких байт по UART |
Цитата |
|
вопрос по поводу шаблона С приемом все понятно , с отправкой мне не все ясно 1) в чем преимущество отправки через буфер например длинные сообщение я так отправляю
123.png [ 8.64 КБ | Просмотров: 13307 ]
2)для отправки всего содержимого буфера надо постоянно вызывать событие USART0_DR_Empty ?
вопрос по поводу шаблона С приемом все понятно , с отправкой мне не все ясно 1) в чем преимущество отправки через буфер например длинные сообщение я так отправляю [attachment=0]123.png[/attachment] 2)для отправки всего содержимого буфера надо постоянно вызывать событие USART0_DR_Empty ?
|
|
|
 |
Добавлено: 03 июл 2016, 12:01 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Прием нескольких байт по UART |
Цитата |
|
Спасибо! жду с нетерпением
Спасибо! жду с нетерпением
|
|
|
 |
Добавлено: 29 июн 2016, 19:51 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Прием нескольких байт по UART |
Цитата |
|
Да, нужно принимать в буфер и по факту приема последнего символа начинать сравнивать строку. У меня уже готовы шаблоны для меги328 в которых есть и работа с UART с буфером - как оформлю, оставлю в разделе шаблонов http://www.getchip.net/templates/
Да, нужно принимать в буфер и по факту приема последнего символа начинать сравнивать строку.
У меня уже готовы шаблоны для меги328 в которых есть и работа с UART с буфером - как оформлю, оставлю в разделе шаблонов http://www.getchip.net/templates/
|
|
|
 |
Добавлено: 29 июн 2016, 19:26 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Прием нескольких байт по UART |
Цитата |
|
Добрый день Подскажите пожалуйста как правильно принимать длинные сообщения по uart пытаюсь связать esp8266 c mega32 по средством uart. сообщения длинные 20-30 символов ASCII, 2-3 символа принять не сложно (построить ступеньку из трех условий - и сравнивать каждый символ) а если сообщения длинные - предположу что надо записывать сообщения в массив и далее сравнивать два массива. Но как правильно "красиво" сделать не знаю. Может у кого есть кое какие наработки?
Добрый день Подскажите пожалуйста как правильно принимать длинные сообщения по uart пытаюсь связать esp8266 c mega32 по средством uart. [url=http://homes-smart.ru/index.php/oborudovanie/bez-provodov-wi-fi/72-uart-bridge-na-esp8266]UART bridge[/url] сообщения длинные 20-30 символов ASCII, 2-3 символа принять не сложно (построить ступеньку из трех условий - и сравнивать каждый символ) а если сообщения длинные - предположу что надо записывать сообщения в массив и далее сравнивать два массива. Но как правильно "красиво" сделать не знаю. Может у кого есть кое какие наработки?
|
|
|
 |
Добавлено: 29 июн 2016, 11:39 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Прием нескольких байт по UART |
Цитата |
|
Спасибо, это сработало!
Спасибо, это сработало!
|
|
|
 |
Добавлено: 07 июн 2016, 16:54 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Прием нескольких байт по UART |
Цитата |
|
Все просто - пришла соответствующая буква - сбрасываешь счетчик цифр и аккумулятор результата - дальше - приходит очередная цифра приращиваешь счетчик цифр умножаешь аккумулятор результата на 10 и прибавляешь к нему принятую цифру - делаешь так пока не примешь все цифры
вот так примерно я делал
Вложения: |

sshot-1.png [ 5.27 КБ | Просмотров: 13384 ]
|
Все просто - пришла соответствующая буква - сбрасываешь счетчик цифр и аккумулятор результата - дальше - приходит очередная цифра приращиваешь счетчик цифр умножаешь аккумулятор результата на 10 и прибавляешь к нему принятую цифру - делаешь так пока не примешь все цифры
вот так примерно я делал
|
|
|
 |
Добавлено: 02 июн 2016, 00:42 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Прием нескольких байт по UART |
Цитата |
|
Да, код пока принимает два байта(я написал про то как должно быть) <> используются для определения начала/конца посылки, а как тогда без разделителей определить начало строки? P.S. Вроде разобрался, у меня частота кварца уплывала и приходили не те символы что я отправлял Но теперь вопрос - отправлять число ascii символами или можно передать байтами? (Немного поясню что должно получится в итоге - шлем X1000Y0500 - получаем 1000 в переменной X и 500 в переменной Y, вот так)
Да, код пока принимает два байта(я написал про то как должно быть) <> используются для определения начала/конца посылки, а как тогда без разделителей определить начало строки? P.S. Вроде разобрался, у меня частота кварца уплывала и приходили не те символы что я отправлял Но теперь вопрос - отправлять число ascii символами или можно передать байтами? (Немного поясню что должно получится в итоге - шлем X1000Y0500 - получаем 1000 в переменной X и 500 в переменной Y, вот так)
|
|
|
 |
Добавлено: 30 май 2016, 21:25 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Прием нескольких байт по UART |
Цитата |
|
А зачем сообщение заключено в "<" ">" ?
А еще, не вижу обработки буквы в сообщении.
По ходу сообщение должно выглядеть как "<XX>"
А зачем сообщение заключено в "<" ">" ?
А еще, не вижу обработки буквы в сообщении.
По ходу сообщение должно выглядеть как "<XX>"
|
|
|
 |
Добавлено: 30 май 2016, 18:46 |
|
|
 |