# Wireless TV Shield Interupts the UART(3) Receiving Data

**URL:** <https://forums.openmv.io/t/wireless-tv-shield-interupts-the-uart-3-receiving-data/1279>\
**Category:** OpenMV Boards\
**Created:** [May 30, 2019, 6:35am UTC](https://forums.openmv.io/t/wireless-tv-shield-interupts-the-uart-3-receiving-data/1279 "2019-05-30T06:35:26Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Psilym](https://yyz1.discourse-cdn.com/flex029/user_avatar/forums.openmv.io/psilym/32/52_2.png) [@Psilym](https://forums.openmv.io/u/Psilym)\
**Post date:** [May 30, 2019, 6:35am UTC](https://forums.openmv.io/t/wireless-tv-shield-interupts-the-uart-3-receiving-data/1279/1 "2019-05-30T06:35:26Z")

</div>

Today, when I have tried the function of uart receiving data, I found that I can receive 00 01 … 09 in sequence on openmv without using tv.display() function. However, the data gets bad when I use uart.read() followed by tv.dispaly() function. The problem has been solved if I separate this 2 function into different part of the while(True) .  
But what behind this phenomenon is what I’m figuring out. Hope to solve the problem.

 ![GoodData.jpg](https://canada1.discourse-cdn.com/flex029/uploads/openmv1/original/1X/c6377af911284a632685e21ee098dafa31a4f04a.jpeg)  
 ![CodeSegment.jpg](https://canada1.discourse-cdn.com/flex029/uploads/openmv1/original/1X/890489cebb67025a07b438436eb4be3429d9b2e9.jpeg)  
 ![BadData.jpg](https://canada1.discourse-cdn.com/flex029/uploads/openmv1/original/1X/31381498aece63f2674fd30c02c655592a056620.jpeg)

---

<div class="post-metadata">

**Author:** ![Psilym](https://yyz1.discourse-cdn.com/flex029/user_avatar/forums.openmv.io/psilym/32/52_2.png) [@Psilym](https://forums.openmv.io/u/Psilym)\
**Post date:** [May 30, 2019, 7:40am UTC](https://forums.openmv.io/t/wireless-tv-shield-interupts-the-uart-3-receiving-data/1279/2 "2019-05-30T07:40:22Z")

</div>

Now I find the way of separating the two funcs can only alleviating problem, but can not fix it. Only get off the tv.display() can make the data receiving perfect.

---

<div class="post-metadata">

**Author:** ![kwagyeman](https://yyz1.discourse-cdn.com/flex029/user_avatar/forums.openmv.io/kwagyeman/32/4_2.png) [@kwagyeman](https://forums.openmv.io/u/kwagyeman)\
**Post date:** [May 30, 2019, 3:05pm UTC](https://forums.openmv.io/t/wireless-tv-shield-interupts-the-uart-3-receiving-data/1279/3 "2019-05-30T15:05:42Z")

</div>

This is weird. Um, whats the data rate the data is received at? The tv.diplay() method uses SPI and disables interrupts for a while while sending data. Is the UART running very fast?

Here’s the display method: [https://github.com/openmv/openmv/blob/master/src/omv/py/py\_tv.c#L540](https://github.com/openmv/openmv/blob/master/src/omv/py/py_tv.c#L540)

You aren’t using pins it uses right?

---

<div class="post-metadata">

**Author:** ![Psilym](https://yyz1.discourse-cdn.com/flex029/user_avatar/forums.openmv.io/psilym/32/52_2.png) [@Psilym](https://forums.openmv.io/u/Psilym)\
**Post date:** [May 31, 2019, 5:06am UTC](https://forums.openmv.io/t/wireless-tv-shield-interupts-the-uart-3-receiving-data/1279/4 "2019-05-31T05:06:15Z")

</div>

Thank you very much! Your reply exactly explains the problem that we meet. The baud rate we use is 115200 which may be a little fast! Thanks again! 😃

---

<div class="post-metadata">

**Author:** ![kwagyeman](https://yyz1.discourse-cdn.com/flex029/user_avatar/forums.openmv.io/kwagyeman/32/4_2.png) [@kwagyeman](https://forums.openmv.io/u/kwagyeman)\
**Post date:** [May 31, 2019, 5:46am UTC](https://forums.openmv.io/t/wireless-tv-shield-interupts-the-uart-3-receiving-data/1279/5 "2019-05-31T05:46:36Z")

</div>

Hmm, yeah, it probably takes longer than the serial buffer has time to buffer data for before needing to be serviced by the CPU.
