from the description:
I tx-ed the two halves of the screen buffer separately . if this two halves tx will cause the TFT lcd refresh has a obvious delay visually.
Thank you for your response.
Yes drawing the two halves causes some small visual delays, but was only a (failed) solution to a previous problem, not the problem itself. The example was meant to show what I thought might be happening and why.
The problem is that line 27 of the above code causes my periodic timers to stop running, and commenting it out allows them to run indefinitely.
Can you help to do below tests ?
1. increase the timer value to a bigger one like 1s .
2. decrease the buffer to a small one like we only exchange one line of the screen.
3. try to stop the timer and start the timer again after the spi data exchange.
1. I have one 50ms timer and one 30s timer, both of which may fail randomly, so it is not necessarily the timer duration that is the problem.
2. I tried pushing 1024 bytes in each tx_data() call (the size of the tx buffer, from my understanding), but this does not solve the issue, it only extends the time before freezing.
3. Right now I use one-shot timers that I restart after each timeout, and this appears to solve the issue. However, it is not preferred as now I don't have control over how often my loop runs.