SoftwareSerial в Atmel Studio

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

Не работает библиотека SoftwareSerial, подскажите, что делать, пожалуйста

vk007
Offline
Зарегистрирован: 16.06.2015

NikolayEgorov89 пишет:
Не работает библиотека SoftwareSerial, подскажите, что делать, пожалуйста

Посмотреть расписание работы, если не работает в рабочее время, то подать жалобу на библиотекаря.

Извините, какой вопрос - такой и ответ.

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

Ха) Этот ответ мне нравится даже больше чем тот, который я хотел получить).

Так вот, при таком коде:

#define F_CPU 16000000L
#define ARDUINO 101
#include "Arduino.h"
#include "SoftwareSerial.h"



int ledPin = 13;

void setup()
{
	pinMode(ledPin, OUTPUT);
	Serial.begin(9600);
}

void loop()
{
	digitalWrite(ledPin, HIGH);
	Serial.println("On!");
	delay(1000);
	digitalWrite(ledPin, LOW);
	Serial.println("Off!");
	delay(1000);
}

все работает, если ставлю так:

#define F_CPU 16000000L
#define ARDUINO 101
#include "Arduino.h"
#include "SoftwareSerial.h"


SoftwareSerial modem(7, 8);
int ledPin = 13;

void setup()
{
	pinMode(ledPin, OUTPUT);
	modem.begin(9600);
}

void loop()
{
	digitalWrite(ledPin, HIGH);
	modem.println("On!");
	delay(1000);
	digitalWrite(ledPin, LOW);
	modem.println("Off!");
	delay(1000);
}

то:

Ошибка 1 undefined reference to `SoftwareSerial::SoftwareSerial(unsigned char, unsigned char, bool)' E:\Downloads\Arduino\Projects\VisualStudio\Blink\Blink\Debug/.././Blink.cpp 7 1 Blink
Ошибка 2 undefined reference to `SoftwareSerial::~SoftwareSerial()' E:\Downloads\Arduino\Projects\VisualStudio\Blink\Blink\Debug/.././Blink.cpp 7 1 Blink
Ошибка 3 undefined reference to `SoftwareSerial::begin(long)' E:\Downloads\Arduino\Projects\VisualStudio\Blink\Blink\Debug/.././Blink.cpp 13 1 Blink
Спасибо.

 

vk007
Offline
Зарегистрирован: 16.06.2015

Скорее всего, оно не может добраться к вашей библиотеке.

Так подключать библиотеку пробовали?

#include <SoftwareSerial.h>

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

Пробовал, но, похоже неправильно что-то сделал...Если вам несложно, обьясните как начинающему...Только установил Атмел Студио и несовсем в нем еще разобрался.

Создал папку arduinoCore в Документы\Атмел Студио, переместил в нее все файлы *.h библиотек Ардуино, указал компилятору Си и Си++ эту папку, в Линкерс добавил тоже эту папку. Все библиотеки Ардуино видит, а с этой - ничего не выходит. Третий день весь ин-нет перегуглил.

vk007
Offline
Зарегистрирован: 16.06.2015

Я не нашел ничего лучше как:

1) добавить путь к SoftwareSerial.h

Выбрать в меню "Project -> _имя_проекта_ Properties" (можно вызвать через Alt-F7), выбрать "Toolchain -> AVR/GNU C++ Compiler -> Directories" и добавить к списку путь "_папка_с_ардуино_\hardware\arduino\avr\libraries\SoftwareSerial\"

2) добавить SoftwareSerial.cpp

Перейти в Solution Explorer ( Ctrl+; ). Найти там папку src, нажать на ней правой кнопкой мыши, выбрать Add -> Existing Item... и указать на SoftwareSerial.cpp (находится по тому же пути - "_папка_с_ардуино_\hardware\arduino\avr\libraries\SoftwareSerial\")

Вероятно есть более грамотный подход, но признаюсь, до сегодня я не работал с Atmel Studio, пришлось познакомиться :)

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

Первый пункт я выполнил, второй пункт - нет у меня в проэкте папки SRC...

vk007
Offline
Зарегистрирован: 16.06.2015

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

У меня совсем по-другому выглядит проэкт....Как вы создавали проэкт, обьясните, пожалуйста. У вас этот проэкт компилится? Вы проверяли?

vk007
Offline
Зарегистрирован: 16.06.2015

New Project -> Create project from Arduino sketch -> выбрал ino файл -> Сверил путь к Ардуино (у меня две версии стоит, а работает импорт только начиная с 1.6.какой-то) -> Выбрал Board и Device

Потом добавил библиотеку, как в шестом сообщении написал. Только после этого скомпилилось. До этого тоже выдавало те же ошибки.

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

 http://www.ex.ua/445264308036

Как это "выбрал ino файл"?

vk007
Offline
Зарегистрирован: 16.06.2015

Как-то так:

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

Блин...Что за хрень....У меня вообще не так...Видимо у меня старый софт, который не поддерживает библиотеки...Но как его обновить?  А какая версия Атмел Студии у вас?

 

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

 

 

 

vk007
Offline
Зарегистрирован: 16.06.2015

На скриншотах видно версию - 7.0

Обновляется через Help -> Check for Updates

Скачать "с нуля" можно тут http://www.atmel.com/ru/ru/tools/atmelstudio.aspx

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

Понятно...У меня еще 6...

 

vk007
Offline
Зарегистрирован: 16.06.2015

Для 6-й вот ссылку нашел, может поможет.

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

Я, похоже, разобрался...Я винду переставлял и до SP1 не обновился, а Атмел 7 ставится не ниже чем Вин7 СП1...Сейчас все пообновляю, гляну, отпишусь. Спасибо за помощь)

NikolayEgorov89
Offline
Зарегистрирован: 26.12.2015

Все пообновлял и заработа. Большое человеческое спасибо! Можно закрывать тему.