Announcement

Collapse
No announcement yet.

No ACK or NAK returned

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • No ACK or NAK returned

    Can someone please explain why sometimes i get no ACK or NAK back i know its due to me overloading the buffer but for example pressing a userButton while its in the process of doing something like updating a digit / writing a string etc.

    How do i recover from this please ? from a previous post i should now be able to handle and wait for the ACK or NAK before sending out a command from the host to the display but if the display sends a command from a userButton for example while its in the process of doing something i can see in the console the bytes sent by pressing the button but the host then does not see this to trigger an event when looking for 07 or any other button presses there after until a reset the display.

    If i press the user button slowly when i know the process has finished on the host all is ok.

    How is this best handled please ?

    Thanks.
    Last edited by markavo; 6th June 2018, 07:39 AM.

  • #2
    Hello markavo,

    Have you tried fiddling with the baudrate? Perhaps you could try increasing the baudrate and see if it does you any good.
    Do you have any blocking delays within you main loop? You could also try restructuring your program in such a way that it only does one task at a time, that way you could be sure that all tasks are handled properly.

    Best Regards,
    Michael
    Michael

    Comment


    • markavo
      markavo commented
      Editing a comment
      Thank you.

  • #3
    chances are your code may be running that event while its waiting for an ACK, or, while waiting for ACK, its possible that your discarding non 0x06/0x15 while poll reading uart which may belong to partial reports comming in

    if your waiting for ACK and reports come in (from buttons for example), you shouldnt discard or run them. Here’s what to do:

    you write something to the display
    your waiting for an ACK
    a button is pressed during the wait
    if you catch the event, you need to add it to a queue system, so you can handle it later when your not busy waiting for an ACK. Once it’s queued, continue waiting for that ACK. After the ACK is received, you may run your queued events.

    Comment


    • markavo
      markavo commented
      Editing a comment
      Thank you will give this a go.

  • #4
    What speed would you recommend please for ST-ARM F746

    Comment


    • #5
      speed as in baudrate? use 200000

      Comment

      Working...
      X