Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
Either the device has not completed the program operation. That is, the device is still busy. You should introduce a while loop after QPP command, such that you continuously keep reading the SR1 value and check the WIP bit, and leave the loop only when the WIP becomes LOW. After that, try reading the data using QOR command. I am providing a very rough structure for the while loop below.
while ( WIP == 1)
WIP = SR1 & 0x01
Or, some programming error has occurred, in which case P_ERR or E_ERR bit of the status register will be set (HIGH). In step 8, when you finally read the SR1 value after QPP command, what is the value of the P_ERR and E_ERR bits?
Meanwhile, I am also discussing your problem internally.