<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: LPC55 continuous reading via I2C to USB in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1775404#M54970</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I suggest you refer to the *device_cdc_vcom_bm example, you can call the &lt;SPAN&gt;&lt;FONT color="#FF0000"&gt;USB_DeviceCdcAcmSend&lt;/FONT&gt;&lt;/SPAN&gt;() to transfer data to host once the buffer is full.&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="background-color: #ffffff; padding: 0px 0px 0px 2px;"&gt;
&lt;DIV style="color: #000000; background-color: #ffffff; font-family: 'Consolas'; font-size: 10pt; white-space: nowrap;"&gt;
&lt;P&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;APPTask&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;usb_status_t&lt;/SPAN&gt;&lt;SPAN&gt; error = &lt;/SPAN&gt;&lt;SPAN&gt;kStatus_USB_Error&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; ((1 == s_cdcVcom.&lt;/SPAN&gt;&lt;SPAN&gt;attach&lt;/SPAN&gt;&lt;SPAN&gt;) &amp;amp;&amp;amp; (1 == s_cdcVcom.&lt;/SPAN&gt;&lt;SPAN&gt;startTransactions&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;/* User Code */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;/* &lt;/SPAN&gt;&lt;SPAN&gt;endpoint&lt;/SPAN&gt;&lt;SPAN&gt; callback length is USB_CANCELLED_TRANSFER_LENGTH (0xFFFFFFFFU) when transfer is canceled */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; ((0 != s_recvSize) &amp;amp;&amp;amp; (USB_CANCELLED_TRANSFER_LENGTH != s_recvSize))&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;int32_t&lt;/SPAN&gt;&lt;SPAN&gt; i;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;/* Copy Buffer to Send Buff */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (i = 0; i &amp;lt; s_recvSize; i++)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; s_currSendBuf[s_sendSize++] = s_currRecvBuf[i];&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; s_recvSize = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (s_sendSize)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; size = s_sendSize;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; s_sendSize = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; error = &lt;FONT color="#FF0000"&gt;USB_DeviceCdcAcmSend(s_cdcVcom.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;cdcAcmHandle&lt;/SPAN&gt;&lt;SPAN&gt;, USB_CDC_VCOM_BULK_IN_ENDPOINT, s_currSendBuf, size);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (error != &lt;/SPAN&gt;&lt;SPAN&gt;kStatus_USB_Success&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;/* Failure to send Data Handling code here */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;#if&lt;/SPAN&gt;&lt;SPAN&gt; defined(FSL_FEATURE_USB_KHCI_KEEP_ALIVE_ENABLED) &amp;amp;&amp;amp; (FSL_FEATURE_USB_KHCI_KEEP_ALIVE_ENABLED &amp;gt; 0U) &amp;amp;&amp;amp; \&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; defined(USB_DEVICE_CONFIG_KEEP_ALIVE_MODE) &amp;amp;&amp;amp; (USB_DEVICE_CONFIG_KEEP_ALIVE_MODE &amp;gt; 0U) &amp;amp;&amp;amp; \&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; defined(FSL_FEATURE_USB_KHCI_USB_RAM) &amp;amp;&amp;amp; (FSL_FEATURE_USB_KHCI_USB_RAM &amp;gt; 0U)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; ((s_waitForDataReceive))&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (s_comOpen == 1)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;/* Wait for all the packets been sent during opening the &lt;/SPAN&gt;&lt;SPAN&gt;com&lt;/SPAN&gt;&lt;SPAN&gt; port. Otherwise these packets may&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; * wake up the system.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; usb_echo(&lt;/SPAN&gt;&lt;SPAN&gt;"Waiting to enter &lt;/SPAN&gt;&lt;SPAN&gt;lowpower&lt;/SPAN&gt;&lt;SPAN&gt; ...\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (uint32_t i = 0U; i &amp;lt; 16000000U; ++i)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; __NOP(); &lt;/SPAN&gt;&lt;SPAN&gt;/* delay */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; s_comOpen = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; usb_echo(&lt;/SPAN&gt;&lt;SPAN&gt;"Enter &lt;/SPAN&gt;&lt;SPAN&gt;lowpower&lt;/SPAN&gt;&lt;SPAN&gt;\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; BOARD_DbgConsole_Deinit();&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; USB0-&amp;gt;INTEN &amp;amp;= ~USB_INTEN_TOKDNEEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; USB_EnterLowpowerMode();&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; s_waitForDataReceive = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; USB0-&amp;gt;INTEN |= USB_INTEN_TOKDNEEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; BOARD_DbgConsole_Init();&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; usb_echo(&lt;/SPAN&gt;&lt;SPAN&gt;"Exit &lt;/SPAN&gt;&lt;SPAN&gt;lowpower&lt;/SPAN&gt;&lt;SPAN&gt;\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
    <pubDate>Fri, 15 Dec 2023 07:57:17 GMT</pubDate>
    <dc:creator>xiangjun_rong</dc:creator>
    <dc:date>2023-12-15T07:57:17Z</dc:date>
    <item>
      <title>LPC55 continuous reading via I2C to USB</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1774050#M54943</link>
      <description>&lt;P&gt;Hi : &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Because USB endpoints have a maximum buffer of 1024bytes, if you need to read 10K bytes from I2C at a time, how to design it so that the USB endpoint can send data every 1024bytes when I2C reads continuously, instead of batching the data after I2C reads the data. Sent via USB endpoint.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Dec 2023 15:23:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1774050#M54943</guid>
      <dc:creator>JudySam</dc:creator>
      <dc:date>2023-12-13T15:23:56Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55 continuous reading via I2C to USB</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1774591#M54951</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Regarding the USB packet size, it is dependent on your USB end point types: control, bulk, interrupt and Isochronous, the maximum packet size of&amp;nbsp; control, bulk, interrupt is 64 bytes, the Isochronous end point is 1024 bytes.&lt;/P&gt;
&lt;P&gt;Because the I2C is not a stream interface, I suppose you can use bulk protocol.&lt;/P&gt;
&lt;P&gt;You can use ping-pong mode,You can transfer the I2C received data to a ping buffer, when the buffer is full, the I2C received data will transfer to pong buffer, while, you can read the ping buffer to the bulk memory and call the sending function&amp;nbsp; of USB.&lt;/P&gt;
&lt;P&gt;The full speed USB is 12M BPS.&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;</description>
      <pubDate>Thu, 14 Dec 2023 08:33:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1774591#M54951</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2023-12-14T08:33:45Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55 continuous reading via I2C to USB</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1774670#M54955</link>
      <description>&lt;P&gt;Hi :&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; Thanks for your sugesstion.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; You mean DMA&amp;nbsp;ping-pong mode right.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;If yes, I have one question that this DMA ping-pong mode callback function is excuted when all finished.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; How to call&amp;nbsp;&lt;SPAN&gt;sending function of USB each buffer full?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Dec 2023 09:37:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1774670#M54955</guid>
      <dc:creator>JudySam</dc:creator>
      <dc:date>2023-12-14T09:37:49Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55 continuous reading via I2C to USB</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1774852#M54961</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/26034"&gt;@xiangjun_rong&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; thanks for your reply.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have one question , the callback function just run once when all DMA finished.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; How to call the sending function of USB by every ping or pong buffer full?&lt;/P&gt;</description>
      <pubDate>Thu, 14 Dec 2023 14:09:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1774852#M54961</guid>
      <dc:creator>JudySam</dc:creator>
      <dc:date>2023-12-14T14:09:28Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55 continuous reading via I2C to USB</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1775404#M54970</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I suggest you refer to the *device_cdc_vcom_bm example, you can call the &lt;SPAN&gt;&lt;FONT color="#FF0000"&gt;USB_DeviceCdcAcmSend&lt;/FONT&gt;&lt;/SPAN&gt;() to transfer data to host once the buffer is full.&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="background-color: #ffffff; padding: 0px 0px 0px 2px;"&gt;
&lt;DIV style="color: #000000; background-color: #ffffff; font-family: 'Consolas'; font-size: 10pt; white-space: nowrap;"&gt;
&lt;P&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;APPTask&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;usb_status_t&lt;/SPAN&gt;&lt;SPAN&gt; error = &lt;/SPAN&gt;&lt;SPAN&gt;kStatus_USB_Error&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; ((1 == s_cdcVcom.&lt;/SPAN&gt;&lt;SPAN&gt;attach&lt;/SPAN&gt;&lt;SPAN&gt;) &amp;amp;&amp;amp; (1 == s_cdcVcom.&lt;/SPAN&gt;&lt;SPAN&gt;startTransactions&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;/* User Code */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;/* &lt;/SPAN&gt;&lt;SPAN&gt;endpoint&lt;/SPAN&gt;&lt;SPAN&gt; callback length is USB_CANCELLED_TRANSFER_LENGTH (0xFFFFFFFFU) when transfer is canceled */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; ((0 != s_recvSize) &amp;amp;&amp;amp; (USB_CANCELLED_TRANSFER_LENGTH != s_recvSize))&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;int32_t&lt;/SPAN&gt;&lt;SPAN&gt; i;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;/* Copy Buffer to Send Buff */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (i = 0; i &amp;lt; s_recvSize; i++)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; s_currSendBuf[s_sendSize++] = s_currRecvBuf[i];&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; s_recvSize = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (s_sendSize)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; size = s_sendSize;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; s_sendSize = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; error = &lt;FONT color="#FF0000"&gt;USB_DeviceCdcAcmSend(s_cdcVcom.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;cdcAcmHandle&lt;/SPAN&gt;&lt;SPAN&gt;, USB_CDC_VCOM_BULK_IN_ENDPOINT, s_currSendBuf, size);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (error != &lt;/SPAN&gt;&lt;SPAN&gt;kStatus_USB_Success&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;/* Failure to send Data Handling code here */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;#if&lt;/SPAN&gt;&lt;SPAN&gt; defined(FSL_FEATURE_USB_KHCI_KEEP_ALIVE_ENABLED) &amp;amp;&amp;amp; (FSL_FEATURE_USB_KHCI_KEEP_ALIVE_ENABLED &amp;gt; 0U) &amp;amp;&amp;amp; \&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; defined(USB_DEVICE_CONFIG_KEEP_ALIVE_MODE) &amp;amp;&amp;amp; (USB_DEVICE_CONFIG_KEEP_ALIVE_MODE &amp;gt; 0U) &amp;amp;&amp;amp; \&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; defined(FSL_FEATURE_USB_KHCI_USB_RAM) &amp;amp;&amp;amp; (FSL_FEATURE_USB_KHCI_USB_RAM &amp;gt; 0U)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; ((s_waitForDataReceive))&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (s_comOpen == 1)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;/* Wait for all the packets been sent during opening the &lt;/SPAN&gt;&lt;SPAN&gt;com&lt;/SPAN&gt;&lt;SPAN&gt; port. Otherwise these packets may&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; * wake up the system.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; usb_echo(&lt;/SPAN&gt;&lt;SPAN&gt;"Waiting to enter &lt;/SPAN&gt;&lt;SPAN&gt;lowpower&lt;/SPAN&gt;&lt;SPAN&gt; ...\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (uint32_t i = 0U; i &amp;lt; 16000000U; ++i)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; __NOP(); &lt;/SPAN&gt;&lt;SPAN&gt;/* delay */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; s_comOpen = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; usb_echo(&lt;/SPAN&gt;&lt;SPAN&gt;"Enter &lt;/SPAN&gt;&lt;SPAN&gt;lowpower&lt;/SPAN&gt;&lt;SPAN&gt;\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; BOARD_DbgConsole_Deinit();&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; USB0-&amp;gt;INTEN &amp;amp;= ~USB_INTEN_TOKDNEEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; USB_EnterLowpowerMode();&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; s_waitForDataReceive = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; USB0-&amp;gt;INTEN |= USB_INTEN_TOKDNEEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; BOARD_DbgConsole_Init();&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; usb_echo(&lt;/SPAN&gt;&lt;SPAN&gt;"Exit &lt;/SPAN&gt;&lt;SPAN&gt;lowpower&lt;/SPAN&gt;&lt;SPAN&gt;\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 15 Dec 2023 07:57:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-continuous-reading-via-I2C-to-USB/m-p/1775404#M54970</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2023-12-15T07:57:17Z</dc:date>
    </item>
  </channel>
</rss>

