Добрый день!
Такой вопрос. Есть структура состоящая в основном из интов.
struct Data{
uint8_t A = 0x1A;
uint16_t B = 0xFF2B;
uint8_t С = 0x4D;
}Data;
Пытаюсь побайтно переписать данные из этой структуры в массив uint8_t array[3]. Есть ли способы это сделать через указатели? Интересует именно чтение полей структуры через указатели.
Зараннее спасибо!
Чтение структуры побайтно.
- БлудныйКот
- Сообщения: 45
- Зарегистрирован: 29 дек 2016, 16:19
Чтение структуры побайтно.
Последний раз редактировалось БлудныйКот 23 янв 2017, 14:06, всего редактировалось 6 раз.
- БлудныйКот
- Сообщения: 45
- Зарегистрирован: 29 дек 2016, 16:19
Re: Чтение структуры побайтно.
Пытаюсь прочитать поля структуры через указатель.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.print("Sctructure Data : " );
for(int i = 0; i < 3; i++)
{
uint8_t a = *( (byte *)(&Data+i) );
Serial.print(a);
Serial.println(" ");
}
}
В порте получаю:
Sctructure Data : 1 20 0
Пытался сделать по аналогии с вашим туториалом, но что то не получается.
http://mypractic.ru/urok-15-ukazateli-v ... bajty.html
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.print("Sctructure Data : " );
for(int i = 0; i < 3; i++)
{
uint8_t a = *( (byte *)(&Data+i) );
Serial.print(a);
Serial.println(" ");
}
}
В порте получаю:
Sctructure Data : 1 20 0
Пытался сделать по аналогии с вашим туториалом, но что то не получается.
http://mypractic.ru/urok-15-ukazateli-v ... bajty.html
Re: Чтение структуры побайтно.
При математических операциях над указателями учитывается размер типа данных указателя. Поэтому, если необходимо прочитать в байтах, то i надо прибавлять к указателю преобразованному в байты
uint8_t a = *( ((byte *)(&Data)) + i);
uint8_t a = *( ((byte *)(&Data)) + i);
- БлудныйКот
- Сообщения: 45
- Зарегистрирован: 29 дек 2016, 16:19
Re: Чтение структуры побайтно.
Спасибо) Работает))
Вернуться в «Программирование Ардуино»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей