если ptr изначально не имеет тип uint8_t*, строчка выше даст неверный результат
там в коде есть …
uint8_t* ptr =NULL;
вы бред пишете
Эта строчка ничего не “вытаскивает”. Все операциитолько с указателями.
У вас каша в голове
Никого не смущает, что в 1 байт 4096 тупо не влазят?
Так где код? Иначе идите нафик со своими закидонами
код в начале … код функции в спойлере … платформа куб …
- Приводим к типу uint8_t*
- Смещаем побайтно адрес на сколько надо
- Всё.
Он прибавляет +1 к АДРЕСУ, а не к содержимому по адресу.

Никого не смущает, что в 1 байт 4096 тупо не влазят?
тупить заканчиваем
uint8_t* это указатель, размер указателя 32 бит

Никого не смущает, что в 1 байт 4096 тупо не влазят?
байт данные , 4096 адрес он 32 бита
Нужен полный код!!!
Указатель, судя по описанию библы должен быть uint8_t*.
Как инициализирован указатель?

код функции в спойлере …
В упор не вижу
номер строки укажите

Он прибавляет +1 к АДРЕСУ, а не к содержимому по адресу.
ну вот я на этом и попался…(видимо не только я :))
uint8_t sim =0x52;
uint8_t* ptr= ∼
*ptr+1 выдаст 0x53
*(ptr+1) выдаст то, что в след ячейки за сим

Как инициализирован указатель?
третий спойлер, строки 56 57
У ТС каша в голове и в коде, он путает указатели и данные.
Как впрочем и некоторые “опытные” тут

В упор не вижу
номер строки укажите
сообщение #13

*ptr+1 выдаст 0x53
*(ptr+1) выдаст то, что в след ячейки за сим
это верно.
Только не имеет ни малейшего отношения к вашему случаю.
Вот ваш случай

он сперва делает
(uint8_t*)ptr
а потом к тому что вытащил +1… собственно в этом и была ошибка
вы не замечаете, что звездочка здесь с другой стороны?

вы не замечаете, что звездочка здесь с другой стороны?
это не мой… у меня везде до скобок…а это в ответах написано…
и кстати так (uint8_t*)ptr тоже неправильно… он не на один байт смещает а на 4

это не мой…
Какой нахер не ваш???
Это что, не вы писали?

сперва так ... не вышло // // W25qxx_WriteSector((uint8_t*)&profile_fire,0,0,4096); // W25qxx_WriteSector((uint8_t*)&profile_fire+4096,0,0,4096); // W25qxx_WriteSector((uint8_t*)&profile_fire+4096,0,0,4096); // W25qxx_WriteSector((uint8_t*)&profile_fire+4096,0,0,4096); // // решил , может проблема в функции записи , попробовал с явным указателем // тоже не срослось // W25qxx_WriteSector((uint8_t*)ptr,0,0,4096); // W25qxx_WriteSector((uint8_t*)ptr+4096,0,0,4096); // W25qxx_WriteSector((uint8_t*)ptr+4096,0,0,4096);/ // W25qxx_WriteSector((uint8_t*)ptr+4096,0,0,4096); //
Научитесь правильно понимать записи, без этого вечно будете в потемках блуждать

впрочем и некоторые “опытные” тут
Я и не отрицаю сам запутался вначале. Данных мало было))) А то развели тут 100500 скобок непонятных)

тупить заканчиваем
Пардон, “слона не заметил”… ((

Какой нахер не ваш???
Это что, не вы писали?karasik_mk1:
ну я же написал это закоментированно и работает неправильно ,я так просто хотел сделать … вопросы были не по закоментированyому код, а там везде (uint8_t)*
да сам виноват надо было код в коментах не выкладывать он только путаницу внес