# Q2686 UART2 write Issue

**URL:** <https://forum.sierrawireless.com/t/q2686-uart2-write-issue/4835>\
**Category:** Legacy AirPrime modules\
**Created:** [January 17, 2011, 4:07pm UTC](https://forum.sierrawireless.com/t/q2686-uart2-write-issue/4835 "2011-01-17T16:07:47Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![aezakmi](https://avatars.discourse-cdn.com/v4/letter/a/da6949/32.png) [@aezakmi](https://forum.sierrawireless.com/u/aezakmi)\
**Post date:** [January 17, 2011, 4:07pm UTC](https://forum.sierrawireless.com/t/q2686-uart2-write-issue/4835/1 "2011-01-17T16:07:47Z")

</div>

Hai,  
Am using Q2686G.  
The firmware version is :: R74\_00gg.Q2686G  
Application OS :: 06.21  
Boot loader version :: V08b0e.

Am trying to read/write in UART2.

I filled the required structure, and called “adl\_odOpen( DF\_UART\_CLID, &settings );” .

I filled the structure as follows,  
" evt\_setting.op = G\_IOC\_OP\_SET;  
evt\_setting.valid\_cb = (eUartEvId\_t)(UART\_CB\_ON\_TX\_COMPLETE ||UART\_CB\_ON\_RX\_DATA\_AVAILABLE);

```
  evt_setting.user_data = (void*)-1L; // not used

```

evt\_setting.cb\_list[0].evt\_hdl = (pGEvtNotif\_t)&CallBack\_OnTxComplete;  
evt\_setting.cb\_list[2].evt\_hdl = (pGEvtNotif\_t)&CallBack\_OnRxDataAvailable;  
evt\_setting.cb\_list[0].user\_data = (void\*)UART\_CB\_ON\_TX\_COMPLETE;  
evt\_setting.cb\_list[2].user\_data = (void\*)UART\_CB\_ON\_RX\_DATA\_AVAILABLE; "

then am filling sUartSettings\_t ,sUartLc\_t ;

In a task am reading data and writing back to same port.

" ret=uart\_if-\>read(uart1\_hdl,buffer,32);  
adl\_atSendResponse ( ADL\_AT\_UNS, “\n After READ” );  
uart\_if-\>write(uart1\_hdl,buffer,strlen(buffer)); "

Am setting event in event handler,“CallBack\_OnRxDataAvailable” using "adl\_eventSet( dataReadyEvent, 1 ); " and inside read/write task, am waiting in while using “adl\_eventWait(dataReadyEvent,1,NULL,ADL\_EVENT\_WAIT\_ANY,ADL\_EVENT\_NO\_TIMEOUT);”.

First time, if i send character, its doing read. but, after that, the program get blocked in “adl\_eventWait” call, even though i send characters to UART2.

Am doing “adl\_eventClear(dataReadyEvent,1,NULL);” after read.

why the first time alone its reading, after that not?

Thank you

---

<div class="post-metadata">

**Author:** ![awneil](https://avatars.discourse-cdn.com/v4/letter/a/49beb7/32.png) [@awneil](https://forum.sierrawireless.com/u/awneil)\
**Post date:** [January 17, 2011, 4:24pm UTC](https://forum.sierrawireless.com/t/q2686-uart2-write-issue/4835/2 "2011-01-17T16:24:39Z")

</div>

Unless you have a really, really compelling reason to do it this way, I would strongly recommend that you use FCM instead!

See also: [https://forum.sierrawireless.com/t/q2686g-uart2-write/4828/1](https://forum.sierrawireless.com/t/q2686g-uart2-write/4828/1)

---

<div class="post-metadata">

**Author:** ![aezakmi](https://avatars.discourse-cdn.com/v4/letter/a/da6949/32.png) [@aezakmi](https://forum.sierrawireless.com/u/aezakmi)\
**Post date:** [January 18, 2011, 12:06pm UTC](https://forum.sierrawireless.com/t/q2686-uart2-write-issue/4835/3 "2011-01-18T12:06:51Z")

</div>

> [@awneil](#):
>
> Unless you have a really, really compelling reason to do it this way, I would strongly recommend that you use FCM instead!
> 
> See also: [Q2686G UART2 Write](https://forum.sierrawireless.com/t/q2686g-uart2-write/4828/1)

thank you, using FCM, implemented echo.
