Показано с 1 по 2 из 2
  1. #1
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    51
    Сообщений
    320
    Вес репутации
    356

    По умолчанию Вопрос по СИ

    Взялся я тут на си написать программку, чтоб общалась с ардуиной подключённой к роутеру. Писать отдельные символы в ардуину у меня получается и читать отдельные символы тоже получилось.
    Вот:
    PHP код:
    #include <fcntl.h>
    #include <unistd.h>
    #include <termios.h>
    #include <stdio.h>
    #define PORT "/dev/ttyUSB0"
    #define BAUDRATE B115200
    int fd;
    int val, vxd1, vxd2, vxd3, vxd4, vxd5;
    int ret, count;

    int main()
    {
     
    fd = open(PORT, O_RDWR | O_NOCTTY);
     if (
    fd<0) return 1;
     if (!
    isatty(fd)) return 2;
     
    struct termios port_cfg;
     if (
    tcgetattr(fd, &port_cfg)<0) return 3;
     
    cfmakeraw(&port_cfg);
     
    cfsetospeed(&port_cfg, BAUDRATE);
     
    cfsetispeed(&port_cfg, BAUDRATE);
     if (
    tcsetattr(fd, TCSANOW, &port_cfg)<0) return 4;
    ..................................................................................
     
    val='1';
     
    ret = write(fd, &val, 1);
     if (
    ret!=1) return 5;
     
    ret = read(fd, &vxd1, 1);
     if (
    ret!=1) return 6;
     
    printf("%d\n", vxd1); 
    .................................................................................
    } 
    Тоесть порт открывается, туда еденица записывается и в ответ приходит нужное число.

    А вот что нужно вписать вот сюда:?

    PHP код:
    int main()
    {
     
    fd = open(PORT, O_RDWR | O_NOCTTY);
     if (
    fd<0) return 1;
     if (!
    isatty(fd)) return 2;
     
    struct termios port_cfg;
     if (
    tcgetattr(fd, &port_cfg)<0) return 3;
     
    cfmakeraw(&port_cfg);
     
    cfsetospeed(&port_cfg, BAUDRATE);
     
    cfsetispeed(&port_cfg, BAUDRATE);
     if (
    tcsetattr(fd, TCSANOW, &port_cfg)<0) return 4;
    ..................................................................................
    ????????????????????????????????
    ?????????????????????????????
    ????????????????????????????
    printf(???????); 
    .................................................................................
    } 
    И какие переменные надо обьявить?
    Чтоб принять от ардуины массив байт?
    Вот кусок ардуины:

    PHP код:
      bytes[0]=2; 
      
    bytes[1]=4; 
      
    bytes[2]=67; 
      
    bytes[3]=24;
      
    Serial.write(bytes,4); 
    Как принять, разложить по полочкам эти вывести в консоль эти байты?
    Подскажите плиз!!!

  2. #2
    Продвинутый
    Регистрация
    20.05.2011
    Сообщений
    325
    Вес репутации
    255

    По умолчанию Re: Вопрос по СИ

    А ты какой IDE пользуешься? Судя по printf... Ты просто С используешь? Кстати, посмотри -http://webhole.net/2010/05/01/arduino-visual-c-plus-plus-tutorial/
    Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Ваши права

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