с последних двух недель я пытаюсь установить 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 и написать свой собственный драйвер для датчика? Или у вас есть другая идея, как решить проблему?
Спасибо, Лукас