Здравствуйте, у меня такая проблема: не могу отправить данные на Arduino. При попытке что-либо записать в СОМ-порт происходит перезагрузка контроллера, но после того, как в Arduino IDE я открываю Serial Monitor, программа на C начинает работать ровно так, как должна. Я не знаю кто виновен, но подозрения падают на программу, точнее на то, что я как-то неправильно начинаю работать с платой, инициализирую что-ли не так. Код на С. Пробовал осуществить запись, как описано тут, но, опять-таки, плата вылетает в перезагрузку. Ubuntu 11.04; gcc-4.5; Заранее благодарю
Сложно сказать навскидку в чём проблема. У меня есть пара мыслей. На официальном форуме есть тред, где обсуждается некая проблема коммуникации из C. Код в итоге у товарищей заработал и попытавшись найти 10 отличий от вашего, я увидел, что они не выставляют флаг O_NDELAY в инициализации файла-порта: Код (Text): fd = open(serialport, O_RDWR | O_NOCTTY | O_NDELAY); Попробуйте убрать? И ещё стало любопытно наблюдение того, что когда открыт Serial Monitor, всё ОК. А попробуйте, не открывая IDE, запустить какой-нибудь не родной Serial Monitor. Например picocom Код (Text): picocom /dev/ttyACM0 -b 9600 -l
Попробовал убрать O_NDELAY - результат тот же, а вот с picocom: Код (Text): picocom v1.4 port is : /dev/ttyACM0 flowcontrol : none baudrate is : 9600 parity is : none databits are : 8 escape is : C-a noinit is : no noreset is : no nolock is : yes send_cmd is : ascii_xfr -s -v -l10 receive_cmd is : rz -vv Terminal ready Как при вводе в picocom, так и при запуске кода на С при открытом picocom'e желаемый результат достигается. *ушел изучать трэд*
Здравствуйте. Столкнулся с такой же проблемой, как решилось? PS:Знаю что некропостер, но надеюсь на помощь.
Давно столкнулся с такой проблемой решений несколько, самое простое это на arduino соединить вывод RESET и GND конденсатором 10 мкФ