RS232 через UART - PullRequest
       46

RS232 через UART

0 голосов
/ 15 апреля 2020

с последних двух недель я пытаюсь установить sh связь между датчиком и моим CC1310, который работает с Contiki NG. Датчик представляет собой метеорологическую станцию, которая выдает информацию (символы ASCII) каждую минуту. Он поставляется с интерфейсом RS232, но если он питается только от 0 и 5 В, его можно использовать с уровнями TTL logi c, учитывая, что уровни инвертированы. Означает, что максимум переводится в 0 в двоичном виде. Измеренное напряжение на линии TX датчика составляет 0 и 3,7 В в течение времени, в течение которого отправляется информация, поэтому только небольшая длительность каждую минуту. Это должно быть хорошо для RX UART на CC1310. Моя идея состояла в том, чтобы соединить TX датчика с RX CC1310 и использовать приведенный ниже код для простой передачи полученных символов через последовательный порт на P C.

PROCESS_BEGIN();


serial_line_init();


cc26xx_uart_set_input(serial_line_input_byte);

while(1){

  PROCESS_YIELD();

      if (ev == serial_line_event_message){

          printf(data);

      }

}

  PROCESS_END();

Однако я не получить любые символы. Я имею в виду, что инверсия сигнала должна быть решена для финальной стадии этого проекта, но тем не менее некоторые символы должны быть распознаны UART. Поскольку, похоже, это не так, я подключил TX датчика к TX CC1310. Перемычка к последовательному порту также была подключена. В результате я каждую минуту мог видеть неизвестные символы на консоли. Поэтому мне кажется, что драйвер UART не распознает разные уровни на линии TX датчика. Есть ли какое-то решение для этого, например, чтобы я мог изменить напряжения уровней logi c на UART? Возможно, я мог бы также использовать другой порт AD C и написать свой собственный драйвер для датчика? Или у вас есть другая идея, как решить проблему?

Спасибо, Лукас

...