roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 фев 2025, 17:33

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: PIC16F628 работа с UART
СообщениеДобавлено: 06 сен 2016, 15:55 
Не в сети

Зарегистрирован: 19 май 2016, 13:49
Сообщения: 10
Доброго времени суток Всем !
У меня такой вопрос. Есть переходник 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
СообщениеДобавлено: 06 сен 2016, 16:24 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
а у вас на компе точно скорость 2400 бод стоит?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC16F628 работа с UART
СообщениеДобавлено: 06 сен 2016, 17:12 
Не в сети

Зарегистрирован: 19 май 2016, 13:49
Сообщения: 10
да 2400 программу пишу на VisualBasic 2008


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC16F628 работа с UART
СообщениеДобавлено: 06 сен 2016, 18:40 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
проверьте битность(8), четность aka parity(N), стоп. бит(1)
на обоих концах


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC16F628 работа с UART
СообщениеДобавлено: 06 сен 2016, 21:30 
Не в сети

Зарегистрирован: 19 май 2016, 13:49
Сообщения: 10
Все проверял и битность и четность все стоит одинаково и стоповый


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC16F628 работа с UART
СообщениеДобавлено: 07 сен 2016, 00:09 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
а если на переходнике rx-tx замкнуть - работает программа на бейсике?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC16F628 работа с UART
СообщениеДобавлено: 07 сен 2016, 11:57 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
кстати да, лучшая проверка, это перемычка
так можно проверить и ПК и самоу стройство
если всё работать будет - значит проблема с настройка порта или нестандартной скорости передачи (кратные частоты МК и погрешность передачи)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC16F628 работа с UART
СообщениеДобавлено: 07 сен 2016, 18:38 
Не в сети

Зарегистрирован: 19 май 2016, 13:49
Сообщения: 10
Спасибо буду пробывать

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC16F628 работа с UART
СообщениеДобавлено: 07 сен 2016, 18:49 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
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
СообщениеДобавлено: 07 сен 2016, 21:11 
Не в сети

Зарегистрирован: 19 май 2016, 13:49
Сообщения: 10
Это кусок стандартной программы на 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
СообщениеДобавлено: 07 сен 2016, 21:51 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
intom33 писал(а):
Это кусок стандартной программы на MikroC for PIC там есть библиотека UART этот код из хелпа я поменял только скорость на 2400 в виндовсовской программе стоит скорость тоже 2400

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC16F628 работа с UART
СообщениеДобавлено: 07 сен 2016, 22:44 
Не в сети

Зарегистрирован: 19 май 2016, 13:49
Сообщения: 10
Спасибо попробую !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC16F628 работа с UART
СообщениеДобавлено: 29 сен 2016, 20:46 
Не в сети

Зарегистрирован: 19 май 2016, 13:49
Сообщения: 10
Пробовал на разных скоростях результат одинаковый??
Вот дошел до такого
Код:
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
СообщениеДобавлено: 02 окт 2016, 17:54 
Не в сети
Аватара пользователя

Зарегистрирован: 28 июл 2009, 10:02
Сообщения: 862
Откуда: Самара
ФИО: Павел Сергеевич
может кварц частотозадающий "гуляет"... какой стоит?
В этом контроллере по-моему на чтение буфер стоит в 2 байта - может из-за этого.
Вот может это еще поможет: http://kazus.ru/forums/showthread.php?t=5015

_________________
«Сон разума рождает чудовищ»


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC16F628 работа с UART
СообщениеДобавлено: 06 авг 2021, 16:16 
Не в сети
Аватара пользователя

Зарегистрирован: 30 июл 2021, 08:58
Сообщения: 19
В PIC три буфера, теорию читай. Отправить 1 мало. Надо проверить обе ошибки UART сначало


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO