191 / 29 / 8
Регистрация: 15.09.2011
Сообщений: 430
1

Несовместимость типов данных: Error:invalid conversion from 'int' to 'const char*'

13.04.2015, 18:30. Показов 11273. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Код для ардуинки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <VirtualWire.h>
 
const int led_pin = 13;
const int transmit_pin = 12;
 
void setup() 
{ 
  vw_set_tx_pin(transmit_pin); 
  vw_setup(2000);
  pinMode(led_pin, OUTPUT); 
  Serial.begin(9600);
}
 
void loop() 
{ 
  if (Serial.available() > 0) {
        const char *msg = Serial.read();
        digitalWrite(led_pin, HIGH);
        vw_send((uint8_t *)msg, strlen(msg));
        vw_wait_tx();
        digitalWrite(led_pin, LOW);
        Serial.print("Send: ");
        Serial.println(msg);
        delay(1000);
    }
  }
Ошибка:
In function 'void loop()':
error: invalid conversion from 'int' to 'const char*' [-fpermissive]

Я запутался уже короче))) Понимаю, что несовместимость типов... Но как это поправить. Много его перепробовал(
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2015, 18:30
Ответы с готовыми решениями:

Invalid conversion from `int' to `const char*'
Здравствуйте.Возникла проблема с типами данных, пытался решить - стало хуже...:wall: Вот сам код:...

Ошибка error: invalid conversion from ‘char’ to ‘const char*’
Доброго времени суток, компилятор выдает, такую ошибки: ......

Ошибка error C2446: '==' : no conversion from 'const char *' to 'int'
#include &lt;iostream&gt; using namespace std; int main () { int a,b; char op; int res; ...

[Ошибка] invalid conversion from 'const char*' to 'char*' [-fpermissive]
Решал задачи сам по себе, наткнулся на очень интересную. Вот сама задача: Вы оператор пуска ...

6
59 / 59 / 33
Регистрация: 08.03.2014
Сообщений: 138
13.04.2015, 18:33 2
hacker_007,
C++
1
Serial.read()
возвращает целое число, Вам нужно хранить число в строковом виде?
1
76 / 76 / 32
Регистрация: 14.04.2014
Сообщений: 408
13.04.2015, 18:35 3
А в какой строке ошибка? В глаза, конечно, брасается 17я, но мб...
А вообще компиллятор говорит, что не знает правила для преобразования инта в указатель на чар.
1
191 / 29 / 8
Регистрация: 15.09.2011
Сообщений: 430
13.04.2015, 18:37  [ТС] 4
Не важно) Главное, чтобы считывалось и пересылалось)

Добавлено через 26 секунд
Да, 17)
0
59 / 59 / 33
Регистрация: 08.03.2014
Сообщений: 138
13.04.2015, 19:00 5
hacker_007, посмотреть бы на функции Serial.read и vw_send
0
191 / 29 / 8
Регистрация: 15.09.2011
Сообщений: 430
13.04.2015, 19:07  [ТС] 6
Serial.read()
Cчитывает очередной доступный байт из буфера последовательного соединения.
Возвращаемое значение
Следующий доступный байт или -1 если его нет (int)

Описание работы библиотеки:
Кликните здесь для просмотра всего текста

Максимальный размер сообщения, которое может быт отправленоVW_MAX_PAYLOAD (27) — 27 байт

Каждое сообщение передается как:

36 бит преамбула состоящая из 0-1 битовых пар, т.е. информация о передающем сигнале для приемника
12 бит(101100110110) начальный символ 0xb38
1 байт — длина сообщения(4-30), это количество включает количество байтов и контрольную сумму
n — размер сообщения, максимум задается VW_MAX_PAYLOAD (27)
2 байта контрольная сумма, посылается младший байт и старший байт
Все после начального символа кодируется от 4 до 6 битов, каждый байт сообщения кодируется как два шести битовых символа, посылается старшая группа битов и младшая группа битов.

Тактовая частота Arduino UNO 16MHz =1/16000000=0.0000000625 = 62.5нс/такт

Необходимое время для передачи одного бита данных на скорости 2000бит/с = 1/2000=0.0005=500 микросекунд

Время для передачи максимального размера сообщения на скорости 2000 бит/с равно (6 + 2 + VW_MAX_MESSAGE_LEN*2) * 6 = 408 бит*500микросекунд = 0.204 секунды, где VW_MAX_MESSAGE_LEN это VW_MAX_PAYLOAD + 3 = 30


Может поможет...
0
76 / 76 / 32
Регистрация: 14.04.2014
Сообщений: 408
14.04.2015, 14:06 7
C++
1
const char *msg = Serial.read();
замени на
C++
1
2
int msg = Serial.read();
if(msg!=-1){}
в мсг будет лежать от 0 до 255 соответственно байт. Можно было и ансайнед чар использовать, то тогда непонятно было бы что передается, -1 или 255
0
14.04.2015, 14:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2015, 14:06
Помогаю со студенческими работами здесь

Работа со строками - Invalid conversion from 'char' to 'const char*'
#include &lt;iostream&gt; #include &lt;ctype.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; using namespace...

Ошибка invalid conversion from 'const char*' to 'char*'
Я в С++ новенький. Поэтому опыта еще нет, да и знаний мало. ПОдскажите пожалуйста, чего вылетает...

error: invalid operands of types 'const int*' and 'const int*' to binary 'operator+'
Что означает ошибка в 8 строчке error: invalid operands of types 'const int*' and 'const int*' to...

Invalid conversion from 'char' to 'const char*'
доброго всем время суток. при компиляции у меня выдаёт ошибку invalid conversion from 'char' to...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru