roboforum.ru

Технический форум по робототехнике.

PIC16F628 работа с UART

PIC16F628 работа с UART

intom33 » 06 сен 2016, 15:55

Доброго времени суток Всем !
У меня такой вопрос. Есть переходник USB-RS232 при передачи из компа выдает TTL. Написал программку простую на MikroC for PIC для приема и передачи данных по RS232 вот пример:
Код: Выделить всёРазвернуть
char uart_rd;
void main() {
  UART1_Init(2400);   
  Delay_ms(100);       
   while(1){
      if (UART1_Data_Ready()) {     // If data is received,
      uart_rd = UART1_Read();     // read the received data,
      UART1_Write(uart_rd);
          }
  }

}

ввожу с компьютера например "1" а с контролера выводит "L"
или ввожу "2" а выводит "f"
что не так делаю

Re: PIC16F628 работа с UART

Madf » 06 сен 2016, 16:24

а у вас на компе точно скорость 2400 бод стоит?

Добавлено спустя 23 минуты 39 секунд:
и да, попробуйте "unsigned char" в типе переменной

Re: PIC16F628 работа с UART

intom33 » 06 сен 2016, 17:12

да 2400 программу пишу на VisualBasic 2008

Re: PIC16F628 работа с UART

elmot » 06 сен 2016, 18:40

проверьте битность(8), четность aka parity(N), стоп. бит(1)
на обоих концах

Re: PIC16F628 работа с UART

intom33 » 06 сен 2016, 21:30

Все проверял и битность и четность все стоит одинаково и стоповый

Re: PIC16F628 работа с UART

elmot » 07 сен 2016, 00:09

а если на переходнике rx-tx замкнуть - работает программа на бейсике?

Re: PIC16F628 работа с UART

Madf » 07 сен 2016, 11:57

кстати да, лучшая проверка, это перемычка
так можно проверить и ПК и самоу стройство
если всё работать будет - значит проблема с настройка порта или нестандартной скорости передачи (кратные частоты МК и погрешность передачи)

Re: PIC16F628 работа с UART

intom33 » 07 сен 2016, 18:38

Спасибо буду пробывать

Добавлено спустя 46 минут 12 секунд:
Поставил перемычку RX---TX работает правильно что посылаю то и приходит

Re: PIC16F628 работа с UART

Dmitry__ » 07 сен 2016, 18:49

intom33, ты привел кусок какой-то программы, по которой можно только воду заряжать перед телевизором. :)
Нагугли пример и попробуй...
https://yandex.ru/search/?text=PIC16F628%20UART&lr=2
Первые ссылки:
http://www.radiohlam.ru/control/pic_usart.htm
Можно попробовать с протеусом:
http://kazus.ru/forums/showthread.php?t=5015
Кста, интересно как работает протеус с твоей прогой...

Re: PIC16F628 работа с UART

intom33 » 07 сен 2016, 21:11

Это кусок стандартной программы на MikroC for PIC там есть библиотека UART этот код из хелпа я поменял только скорость на 2400 в виндовсовской программе стоит скорость тоже 2400, пробывал посылать байты на пик программкой
COM Port Toolkit 4.0 посылаю символ "1" пик возвращает в место 1 букву "L" посылаю "2" возвращает "f".
Когда отключаю пик контролер и замыкаю RX c TX работает нормаль что посылаю то и принимаю "1"--"1" "2"--"2"

Re: PIC16F628 работа с UART

Dmitry__ » 07 сен 2016, 21:51

intom33 писал(а):Это кусок стандартной программы на MikroC for PIC там есть библиотека UART этот код из хелпа я поменял только скорость на 2400 в виндовсовской программе стоит скорость тоже 2400

И? Я pic-и юзаю >20 лет, а MikroC не знаю :pardon: . Настаиваю на проверке других примеров, вплоть до асм кода. И да, попробуй не менять скорость, 2400 очень экзотичен, проверь на 9600.

Re: PIC16F628 работа с UART

intom33 » 07 сен 2016, 22:44

Спасибо попробую !

Re: PIC16F628 работа с UART

intom33 » 29 сен 2016, 20:46

Пробовал на разных скоростях результат одинаковый??
Вот дошел до такого
Код: Выделить всёРазвернуть
char receive;
void main() {
TRISA = 0;
TRISB = 0;
TRISB1_bit = 1;
PORTA = 0;
PORTB = 0;
  UART1_Init(9600);

while(1){
              receive = UART1_Read();
             
             UART1_Write(receive);
        }

}

но теперь правильно отправляет из пика каждую вторую цифру
например шлю 1 выходит 1, шлю 2 выходит не понятно что, шлю 3 выходи 3 и так далее ???

Re: PIC16F628 работа с UART

Zeus » 02 окт 2016, 17:54

может кварц частотозадающий "гуляет"... какой стоит?
В этом контроллере по-моему на чтение буфер стоит в 2 байта - может из-за этого.
Вот может это еще поможет: http://kazus.ru/forums/showthread.php?t=5015

Re: PIC16F628 работа с UART

Seggio » 06 авг 2021, 16:16

В PIC три буфера, теорию читай. Отправить 1 мало. Надо проверить обе ошибки UART сначало


cron
Rambler\'s Top100 Mail.ru counter