色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

學(xué)技術(shù) | LPC5516 USB 代碼的一些說明

大大通 ? 2023-02-13 14:19 ? 次閱讀

概述

在前兩篇文章中,我們針對(duì) LPC 的鍵鼠項(xiàng)目開發(fā)時(shí),對(duì)于 LPC USB 代碼流程的講解,讓大家對(duì)于代碼的架構(gòu)以及流程有所了解。在本篇中以及后續(xù)的文檔中不定期將對(duì)于之前沒有說明的部分進(jìn)行補(bǔ)充說明,大家可以當(dāng)做番外篇或者 DLC 來(lái)看。

DLC內(nèi)容

1. 在使用原廠的 SDK demo 時(shí),大家應(yīng)該能夠發(fā)現(xiàn)一個(gè)情況:在編譯下載鍵鼠的例程到開發(fā)板之后,只要設(shè)備通過 USB 線接上電腦上電后,就會(huì)不停地畫框(鼠標(biāo)例程)或者上下翻頁(yè)(鍵盤例程)。例程中是通過在三個(gè)地方中添加函數(shù)來(lái)實(shí)現(xiàn)的,由于鍵鼠兩個(gè)例程都是相同的位置,我這邊就以鼠標(biāo)例程來(lái)進(jìn)行說明。其中我們可以在例程中找到主要實(shí)現(xiàn)鼠標(biāo)畫框的函數(shù)為USB_DeviceHidMouseAction,如下圖所示:

baea90f4-a8d3-11ed-ad0d-dac502259ad0.png

主要調(diào)用的三個(gè)地方分別為:kUSB_DeviceHidEventSendResponse、kUSB_DeviceEventSetConfiguration以及kUSB_DeviceEventSetInterface 這三個(gè)地方進(jìn)行調(diào)用。

其中kUSB_DeviceHidEventSendResponse 這個(gè)事件是在設(shè)備發(fā)送完 USB 數(shù)據(jù)之后底層回報(bào)的事件,用以通知數(shù)據(jù)發(fā)送完成或者取消的結(jié)果,而例程中在這里添加發(fā)送函數(shù)的作用是循環(huán)發(fā)送鼠標(biāo)數(shù)據(jù)。流程如下圖所示:

bb15a28a-a8d3-11ed-ad0d-dac502259ad0.png

而剩下的兩個(gè)事件就是在設(shè)備上電工作時(shí)進(jìn)行 USB 配置完成后開始傳輸?shù)臅r(shí)間,處理流程如下:

bb43e956-a8d3-11ed-ad0d-dac502259ad0.png

其中可以看出當(dāng)?shù)讓訁f(xié)議棧接收到主機(jī)端設(shè)置配置或者接口請(qǐng)求之后,會(huì)通過這兩個(gè)事件通知到應(yīng)用程序中,可以準(zhǔn)備發(fā)送 USB 數(shù)據(jù)了。如果在開發(fā)代碼時(shí),可以將 USB_DeviceHidMouseAction 函數(shù)干掉,或者修改成符合自己需要的發(fā)送函數(shù),并且將這三個(gè)事件中調(diào)用該函數(shù)的代碼干掉,其中在 kUSB_DeviceEventSetInterface以及kUSB_DeviceEventSetConfiguration 函數(shù)中添加相關(guān)的標(biāo)志位,用于提示可以準(zhǔn)備發(fā)送數(shù)據(jù)了,而 kUSB_DeviceHidEventSendResponse 事件中可以根據(jù)通知結(jié)果添加自己對(duì)應(yīng)的后續(xù)操作。

2. 在開發(fā)項(xiàng)目的過程中,還有一個(gè)常用的功能需要添加的,就是當(dāng)主機(jī)休眠時(shí),設(shè)備需要執(zhí)行 Suspend 以及后續(xù)的 Resume 的喚醒功能。對(duì)此,SDK 中有一個(gè)相關(guān)的例程

dev_suspend_resume_hid_mouse 可以參考,首先需要在 .h 中將 USB 的 Lowpower 功能打開,如下圖所示:

bb757e3a-a8d3-11ed-ad0d-dac502259ad0.png

這樣的話才能確保到相應(yīng)的 Suspend 以及 Resume 的事件能夠在 SDK 中運(yùn)行,具體可以例程搜索 USB_DEVICE_CONFIG_LOW_POWER_MODE。其中代碼中會(huì)在 USB 中斷 USB_DeviceLpcIp3511IsrFunction 中查詢 USB device 的狀態(tài)寄存器 DEVCMDSTAT 中關(guān)于 DSUS_C bit,如下圖所示:

bbb23e38-a8d3-11ed-ad0d-dac502259ad0.png

如果 DSUS_C 位被置 1 就說明設(shè)備將處于這三個(gè)狀態(tài)中:需要進(jìn)入 Suspend 狀態(tài);設(shè)備斷開連接;設(shè)備接收到 Resume 信號(hào)。那么如何區(qū)別這些狀態(tài)咧?就需要繼續(xù)查看寄存器中 DSUS bit,如下圖所示:

bbe308c4-a8d3-11ed-ad0d-dac502259ad0.png

當(dāng)DSUS bit 置1,則表明設(shè)備已經(jīng)超過 3ms 沒有發(fā)送 SOF 信號(hào)來(lái)維持活躍狀態(tài),需要執(zhí)行 Suspend 操作,而DSUS bit沒有置 1 而 DSUS_C bit 置 1,則表明設(shè)備接收到了 Resume 信號(hào),需要執(zhí)行 Resume 操作。在通過 SDK 中標(biāo)準(zhǔn)和類驅(qū)動(dòng)中,最后傳輸?shù)綉?yīng)用程序中是USB_DeviceCallback 函數(shù)中 kUSB_DeviceEventSuspend 以及 kUSB_DeviceEventResume,SDK 是在這兩個(gè)事件中通過設(shè)置對(duì)應(yīng)的標(biāo)志位,然后通過一個(gè)任務(wù)不斷查看這些標(biāo)志位來(lái)進(jìn)行對(duì)應(yīng)的操作。

總結(jié)

在本篇中主要是描述了鍵鼠例程中發(fā)送函數(shù)的流程和對(duì)應(yīng)事件,以及如何修改添加自己的發(fā)送函數(shù);還有就是關(guān)于 USB 主機(jī)關(guān)機(jī)休眠時(shí),設(shè)備執(zhí)行 Suspend & Resume 操作時(shí)的流程。后續(xù)會(huì)隨著對(duì)于 USB 的深入了解再繼續(xù)推出補(bǔ)充說明。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7959

    瀏覽量

    265034
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4801

    瀏覽量

    68728
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    USB/UART橋接器的應(yīng)用優(yōu)勢(shì)

    切都要?dú)w功于USB/UART橋接器——它們是嵌入式系統(tǒng)中的強(qiáng)大工具。無(wú)論您是從事調(diào)試、物聯(lián)網(wǎng)還是工業(yè)應(yīng)用,了解此橋接器都可以簡(jiǎn)化硬件集成并提高通信可靠性。以下是USB/UART橋接如何簡(jiǎn)化這些連接以及
    的頭像 發(fā)表于 12-03 13:52 ?268次閱讀
    <b class='flag-5'>USB</b>/UART橋接器的應(yīng)用優(yōu)勢(shì)

    一些常見的動(dòng)態(tài)電路

    無(wú)論是模電還是數(shù)電,理論知識(shí)相對(duì)來(lái)說還是比較枯燥,各種電路原理理解清楚不算容易,換種生動(dòng)形象的方式或許會(huì)增加一些趣味性,也更容易理解這些知識(shí)。下面整理了一些常見的電路,以動(dòng)態(tài)圖形的方式展示。 整流
    的頭像 發(fā)表于 11-16 09:26 ?399次閱讀
    <b class='flag-5'>一些</b>常見的動(dòng)態(tài)電路

    分享一些常見的電路

    理解模電和數(shù)電的電路原理對(duì)于初學(xué)者來(lái)說可能比較困難,但通過一些生動(dòng)的教學(xué)方法和資源,可以有效地提高學(xué)習(xí)興趣和理解能力。 下面整理了一些常見的電路,以動(dòng)態(tài)圖形的方式展示。 整流電路 單相橋式整流
    的頭像 發(fā)表于 11-13 09:28 ?333次閱讀
    分享<b class='flag-5'>一些</b>常見的電路

    LED驅(qū)動(dòng)器應(yīng)用的一些指南和技巧

    電子發(fā)燒友網(wǎng)站提供《LED驅(qū)動(dòng)器應(yīng)用的一些指南和技巧.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:35 ?0次下載
    LED驅(qū)動(dòng)器應(yīng)用的<b class='flag-5'>一些</b>指南和技巧

    【龍芯2K0300蜂鳥板試用】IO和串口腳本測(cè)試遇到一些問題

    這會(huì)沒有報(bào)錯(cuò)哈,還提示我們?cè)趺从茫窍胂?b class='flag-5'>說明里面測(cè)試的是串口0 和串口3,但是實(shí)際我們接的是串口1,2,3,再根據(jù)log提示,可能我們需要改下測(cè)試命令,經(jīng)過我的幾次嘗試后,最終串口測(cè)試成功,希望文檔盡可能的在完善一些
    發(fā)表于 09-01 22:28

    關(guān)鍵指南針-NXP USB CDC_VCOM虛擬串口例程

    最近有小伙伴反應(yīng)USB中的 usb_examples/usb_device_cdc_vcom 例程(USB虛擬串口VCOM)中的一些使用問題
    的頭像 發(fā)表于 07-25 09:17 ?2085次閱讀
    關(guān)鍵指南針-NXP <b class='flag-5'>USB</b> CDC_VCOM虛擬串口例程

    咨詢一些關(guān)于LED燈具的問題

    各位大佬,咨詢一些關(guān)于LED燈具的問題 120W的吸頂燈,用的非隔離式電源,用不到1年,燈具就會(huì)閃爍、頻閃或不亮,主要是什么原因造成的?是不是驅(qū)動(dòng)芯片太差?
    發(fā)表于 07-02 22:33

    esp32-s2的usb只支持host模式不能作為usb-hid設(shè)備被pc使用嗎?

    S2的usb只支持host模式不能作為usb-hid設(shè)備被pc使用嘛? WiFi tof百度搜索不到有效的信息,能否提供一些技術(shù)原理上的說明
    發(fā)表于 06-25 07:04

    細(xì)談SolidWorks教育版的一些基礎(chǔ)知識(shí)

    SolidWorks教育版是款廣泛應(yīng)用于工程設(shè)計(jì)和教育領(lǐng)域的三維建模軟件。它具備直觀易用的操作界面和強(qiáng)大的設(shè)計(jì)功能,為學(xué)生提供了個(gè)學(xué)習(xí)和實(shí)踐的平臺(tái)。在本文中,我們將詳細(xì)探討SolidWorks教育版的一些基礎(chǔ)知識(shí),幫助初學(xué)者
    的頭像 發(fā)表于 04-01 14:35 ?352次閱讀

    一些有關(guān)通信電路的資料?

    有關(guān)嵌入式之間DSP、ARM、FPGA三者之間和這三款芯片和外部電路之間通信的一些資料,比如說芯片之間的并行通信和芯片和外部電路之間的串行通信,MODBUS、DP、CAN等,一些一些常用的通信協(xié)議的
    發(fā)表于 03-03 18:53

    對(duì)于繪制USB DRP架構(gòu)的一些疑問求解

    我正在繪制新系統(tǒng)的架構(gòu),對(duì)此有一些疑問: 1) 通常左側(cè)板有 20V 固定電源,將通過 TypeC 端口向右板提供 20V。 a) Vbus 通過 Mosfets 直接連接到 20V,如果談判失敗
    發(fā)表于 02-23 06:31

    有關(guān)射頻技術(shù)無(wú)線傳輸?shù)?b class='flag-5'>一些問題

    ,如無(wú)線電波,微波,米波,這些頻率段的信號(hào)是怎么由設(shè)備產(chǎn)生的,尤其是一些高頻波高達(dá)幾個(gè)HZ? 3、藍(lán)牙傳輸技術(shù),快牙,華為最新研究的近距離無(wú)線傳輸技術(shù)叫什么的,電腦近距離建立的局域網(wǎng)技術(shù)
    發(fā)表于 02-03 14:42

    一些無(wú)功補(bǔ)償裝置SVG的資料

    一些SVG電路原理和功能碼相關(guān)的技術(shù)說明書,想了解一些SVG的工作原理和工作過程
    發(fā)表于 02-03 10:13

    PSOC Creator 4.4中是否有一些設(shè)置可以阻止strtok操作?

    我需要一些幫助才能開始使用這個(gè)功能。 我做了個(gè)簡(jiǎn)單的代碼,意圖用逗號(hào)作為分隔符來(lái)標(biāo)記字符串。 我嘗試在 PC 上模擬以下代碼并將其改編為 PSoc5LP: [i]int 主要 ()
    發(fā)表于 01-24 08:31

    有關(guān)通信協(xié)議時(shí)一些問題?

    工業(yè)上應(yīng)用到許多種協(xié)議,按通信同時(shí)刻發(fā)送的數(shù)據(jù)位數(shù)分為串行通信和并行通信,首先我見并行通信多在芯片之間進(jìn)行通信,而串行通信則在外部設(shè)備和芯片之間進(jìn)行的一些通信,對(duì)于常見的串行通信,比如
    發(fā)表于 01-14 00:58
    主站蜘蛛池模板: 狠狠婷婷综合久久久久久| 免费看黄软件| 国产精品午夜小视频观看| 国产成人啪精视频精东传媒网站| 广东95后小情侣酒店自拍流出| 国产www视频| 国内精品不卡一区二区三区| 精品极品三大极久久久久| 老女人与小伙子露脸对白| 暖暖 免费 高清 日本 在线| 日韩黄色免费| 亚洲AV无码乱码国产麻豆穿越| 亚洲青青草| 99热在线观看精品| 国产成人精品电影在线观看| 精品国产mmd在线观看| 男人边吃奶边摸边做刺激情话| 日本久久久免费高清| 亚洲 日韩 自拍 视频一区| 午夜福利不卡片在线播放免费| 亚洲国产AV无码综合在线| 在线观看中文字幕国产| 阿v天堂2017在无码| 国产伦精品一区二区三区| 久久免费精彩视频| 日本高清免费看| 亚洲看片无码免费视频| 99爱在线精品视频免费观看9| 国产成人免费不卡在线观看| 久久yy99re66| 日本少妇无码精品12P| 亚洲视频欧美视频| qvod 艺术片| 韩国演艺圈悲惨在线| 欧美三级aaa| 亚洲精品不卡视频| avove主播| 解开白丝老师的短裙猛烈进入| 欧美性爱 先锋影音| 亚洲精品无夜久久久久久久久| jyzzjyzzz视频国产在线观看|