cancel
Showing results for 
Search instead for 
Did you mean: 

I want to interface NRF24L01+ with STM32 G030C6. Which library out of all the libraries that are available is most reliable and can be scaled easily ? I've tried some, but they don't seem to be working and I'm not being able to debug. Please help.

GSaw
Associate II

I'm new to embedded programming and don't know how to deal with registers therefore I'm looking for a library that is readily available.

Thank you.

31 REPLIES 31
GSaw
Associate II

I'm trying to transmit with ACK true, but it is not transmitting and when I remove CSN wire it sends Transmitted Successfully on my UART.

it means your CSN of NRF24 is not connected to correct pin of STM32.

use

NRF24_csn(1);

NRF24_ce(1);

instructions to verify the status of CSN and CE pins on NRF module using multimeter.

GSaw
Associate II

Thanks for this I had assigned wrong CE and CSN pins.

Now it's working only when ack is false.

Good.

"Now it's working only when ack is false."

If i'm not wrong, It means you are talking about transmitter side and it is not receiving acknowledgement from receiver side.

It means your receiver side has still problem. On the receiver side check whether it is receiving data transmitted by transmitter.

Trouble shoot accordingly.

GSaw
Associate II

Yes "Now it's working only when ack is false." on transmitter side. Sorry for being vague.

Yes the receiver side is receiving data and transmitting on UART but it seems to be garbage data or random characters.

I'm going to try https://github.com/controllerstech/NRF24L01 library today.

"I'm going to try https://github.com/controllerstech/NRF24L01 library today."

i think it will only waste your time and effort, because all libraries are implementing standard algorithms.

Now if your transmitter and receiver are working, you only need to identify where it is picking garbage value.

Are you using debug mode or relying on UART, you must try to troubleshoot using debugger, instead of relying on UART.

are you using IAR workbench

GSaw
Associate II

Hey thanks for your reply. I'm able to successfully transmit and receive using the above library today itself.

And currently trying to make it two way communication and not succeeding.

I'm using STMCubeIDE.

I'm tired

Great! Now you have created the backbone of project.

Don't be tired. By the next two days you will be able to modify a lot.

send the message from receiver to transmitter in Acknowledgement.

modify the following message as per your requirement

char myAckPayload[32] = "Ack by STMF7!";

Replace "Ack by STMF7!" by your message. But it should not exceed 32 byte.

Best wishes.

GSaw
Associate II

Hey thanks for being patient with me.

I'll try this out today.

Can I send ack on the same data pipe as I'm transmitting my data?

I'll give an update on monday.

Thank you.