problem facing nrf24l struct program

Leave aside the business of sending the data for a moment.

Just create and populate the struct and see if it contains the correct data BEFORE you try to send it.

I believe you had a working solution in your other Thread. What is the advantage of making it more complex?

I don't understand what this code is trying to do

packet.leds = 0;
packet.leds = digitalRead(upbut) ? 0x00 : 0x01;
packet.leds = digitalRead(rightbut) ? 0x00 : 0x02;
packet.leds = digitalRead(downbut) ? 0x00 : 0x04;
packet.leds = digitalRead(leftbut) ? 0x00 : 0x08;
packet.leds = digitalRead(nuetral) ? 0x00 : 0x10;
packet.leds = digitalRead(starte) ? 0x00 : 0x20;
packet.leds = digitalRead(stope) ? 0x00 : 0x16;

It looks like you only want to store the value of the latest item in the list that is LOW

And I don't understand your coding system - you go up in powers of 2 until the last one.

Using powers of 2 you could save the state of all the buttons at the same time by adding with

packet.leds = 0;
packet.leds += digitalRead(upbut) ? 0x00 : 0x01;
// etc

provided ALL the steps are powers of 2

But make sure the data is valid BEFORE you send anything.

If this was my project I would do it like in your other Thread.

...R