娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月20日(星期五)

正在發生

2018年09月20日 | STM32例程之USB HID雙向數據傳輸

發布者:量子心跳 來源: eefocus關鍵字:STM32  USB  HID  雙向數據傳輸 手機看文章 掃描二維碼
隨時隨地手機看文章

程序功能

  • 將STM32的USB枚舉為HID設備。

  • STM32使用3個端點,端點0用于枚舉用,端點1和2用于數據的發送和接收。

  • 端點長度為64,也就是單次最多可以傳輸64個字節數據。

  • STM32獲取上位機下發的數據并將該數據通過USB原樣返回,同時將數據打印輸出。

  • 上位機程序通過調用windows的API實現對HID設備的讀寫控制。

USB接口原理圖: 
USB.jpg
HID枚舉成功: 
1.jpg
程序效果圖 
1.jpg
圖一 上位機程序運行圖 
2.jpg
圖二  STM32串口打印輸出 
3.jpg
圖三 Bus Hound抓取的數據 
程序部分代碼 

STM32的報告描述符:

const uint8_t CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC] =

{

        0x05, 0x8c, /* USAGE_PAGE (ST Page) */

        0x09, 0x01, /* USAGE (Demo Kit) */

        0xa1, 0x01, /* COLLECTION (Application) */

        // The Input report

        0x09,0x03, // USAGE ID - Vendor defined

        0x15,0x00, // LOGICAL_MINIMUM (0)

        0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255)

        0x75,0x08, // REPORT_SIZE (8bit)

        0x95,0x40, // REPORT_COUNT (64Byte)

        0x81,0x02, // INPUT (Data,Var,Abs)

        // The Output report

        0x09,0x04, // USAGE ID - Vendor defined

        0x15,0x00, // LOGICAL_MINIMUM (0)

        0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)

        0x75,0x08, // REPORT_SIZE (8bit)

        0x95,0x40, // REPORT_COUNT (64Byte)

        0x91,0x02, // OUTPUT (Data,Var,Abs)

        0xc0 /* END_COLLECTION */

}; /* CustomHID_ReportDescriptor */



上位機測試程序


/**

  * @brief  發送數據后讀取數據

  * @param  None

  * @retval None

  */

void HIDSampleFunc(void)  

{      

        HANDLE       hDev;      

        BYTE         recvDataBuf[1024],reportBuf[1024];;                  

        DWORD        bytes;      

        hDev = OpenMyHIDDevice(0); // 打開設備,不使用重疊(異步)方式 ;     

        if (hDev == INVALID_HANDLE_VALUE){          

                printf("INVALID_HANDLE_VALUE\n");

                return; 

        }

        reportBuf[0] = 0; // 輸出報告的報告 ID 是 0     

        for(int i=0;i

                reportBuf[i+1]=i+1;//將數據存放在數據緩沖區

        }

        printf("開始寫數據到設備...\n");

        // 寫入數據到設備,注意,第三個參數值必須為REPORT_COUNT+1,否則會返回1784錯誤

        if (!WriteFile(hDev, reportBuf, REPORT_COUNT+1, &bytes, NULL)){          

                printf("write data error! %d\n",GetLastError());

                return;   

        }else{

                printf("成功向設備寫出%d個數據... \n",bytes);

        }

        printf("開始從設備讀取數據...\n");

        // 從設備讀取數據,注意,第三個參數值必須大于等于REPORT_COUNT+1,否則會返回1784錯誤

        if(!ReadFile(hDev, recvDataBuf, REPORT_COUNT+1, &bytes, NULL)){ // 讀取設備發給主機的數據 

                printf("read data error! %d\n",GetLastError());

                return;   

        }else{

                printf("成功向設備讀出%d個數據... \n",bytes);

        }

        printf("設備返回的數據為:\n");

        //顯示讀取回來的數據

        for(int i=0;i

                printf("0x%02X ",recvDataBuf[i+1]);

        }

        printf("\n\r");


關鍵字:STM32  USB  HID  雙向數據傳輸 引用地址:STM32例程之USB HID雙向數據傳輸

上一篇:STM32學習筆記之USB數據接收和發送流程分析
下一篇:stm32usb庫bug及解決辦法

推薦閱讀

  在儲能項目中,逆變器、電池等關鍵設備構成了系統的核心單元。?  作為逆變器設備及解決方案供應方,小固針對單相儲能、三相儲能,儲能轉換器(DC耦合、AC耦合)等目前市場上多款儲能產品,本文將對儲能逆變器參數、應用形式、配置方法進行詳細介紹。?  溫馨提示:本文內容翔實,參數詳解涉及九大類:直流輸入參數、電池參數、輸出參數(并網)、輸出...
豐田硬蛋智能汽車生態華南區第一輪豐田&供應商見面會圓滿結束!現場除了國內豐田采購部-部品采購科科長等專家,還有汽車生態伙伴高管親臨現場支持,共同探討汽車供應鏈合作的無限可能性。華南區第一輪豐田&供應商見面會合照 自豐田硬蛋發起來中國區供應鏈開啟招募活動以來(官網:biz.ingdan.com),吸引汽車領域無數英雄豪杰,各路幕后精英紛紛亮相,從生態報名的...
9月19日,《南華早報》發表了該報前總編王向偉的一篇評論文章,題為“Tiktok與甲骨文的合作模式也許會給華為帶來一線希望”。文章指出,9月15日,美國對華為全面斷供制裁正式生效,芯片斷供嚴重影響了華為的智能手機和5G設備生產,即便是華為之前有備案囤貨,但畢竟有耗盡之時;英偉達400億美元收購Arm,有可能會動搖Arm的市場中立基礎,這是另一則對中國...
在5G技術、算力、交互能力的加速發展和技術提升之下,商用VR將加快落地,而這將助推整個VR產業規模的發展與突破,分析機構也指VR行業已進入爆發前期。8月末,字節跳動正式收購VR公司Pico,這次投資隨即也引來資本市場的關注,隨后,在元宇宙概念加持下,VR板塊A股迎來普遍上漲行情,金龍機電、華立科技、寶通科技等概念股漲停,歌爾股份股價一度沖到51.2元...

史海拾趣

問答坊 | AI 解惑

一款簡單容易制作的調頻發射機

1)高頻三極管V1和電容C3、C5、C6組成一個電容三點式的振蕩器   2)C4、L組成一個諧振器:諧振頻率就是調頻話筒的發射頻率,根據圖中元件的參數發射頻率可以在88~108MHZ之間,正好覆蓋調頻收音機的接收頻率,通過調整L的數值(拉伸或者壓縮線 ...…

查看全部問答∨

wince開發用什么開發語言比較好

是x900的芯片,外圍設備有gprs,RFID,tv輸出,遙控輸入,256M內存,上面跑wince,要播放h264格式的視頻。用C#開發應用好還是用c/c++,大俠們給提個建議…

查看全部問答∨

avr的bootloader問題

這個通過串口自升級應用程序的問題我弄了好久,還是不能往flash里面寫入數據。求各位大蝦幫忙!assembly.h文件: void write_page (unsigned int adr, unsigned char function); void fill_temp_buffer (unsigned int data,unsigned int adr); u ...…

查看全部問答∨

怎樣修改eeworld論壇里自己的頭像

大家好:     eeworld論壇里默認的頭像太難看了,我想修改,在博客里修改了也顯示了保存成功但是在論壇里和在博客里顯示的還是原來那個頭像,怎么辦?大家幫忙看下,謝謝了!…

查看全部問答∨

wince下CoCreateInstance失敗

原來做的項目用的圖是bmp的,圖多比較大,想換成png格式的. 所以下了個CCePngButtonST控件. 但是調用SetImage()時,卻總是失敗.因為CoCreateInstance()不成功. CoInitializeEx(NULL,COINIT_MULTITHREADED); //initialize com ,就是下面這句不成 ...…

查看全部問答∨

9G-CM0 新唐CM0+EWARM入門開發過程簡介

9G-CM0 新唐CM0+EWARM入門開發過程簡介 一,準備EWARM + 新唐CM0軟件包 1,在http://www.mcu123.net/bbs/viewthread.php?tid=16064&highlight=CD-EWARM-5501-1908 上 下載 IAR Embedded Workbench for ARM version 5.50 軟件 CD-EWAR ...…

查看全部問答∨

基于CPLD的QAM調制器的設計

各位大俠,求助!畢業設計是“基于CPLD的QAM調制器的設計”,可是一點思路都沒有,給點提示啊各位!!!要求是64QAM調制器!萬分感謝啊!…

查看全部問答∨

智能機器人

本人剛接觸arn最終理想是要做一個屬于自己的機器人,計劃在一年內有所收獲,希望能得到幫助 [ 本帖最后由 ARM_shang 于 2011-10-16 23:25 編輯 ]…

查看全部問答∨

稀里糊涂學STM32 學習講義整理版(第五講)

稀里糊涂學STM32 學習講義整理版(第五講)…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 慈利县| 丹巴县| 汝州市| 华容县| 武山县| 宣威市| 辽宁省| 深泽县| 抚顺县| 富阳市| 牙克石市| 阿荣旗| 文水县| 宜兰县| 桦南县| 乌兰浩特市| 平果县| 汉川市| 应城市| 延吉市| 宜川县| 福贡县| 东方市| 罗田县| 神农架林区| 韶山市| 海伦市| 安达市| 德令哈市| 黔南| 独山县| 张家界市| 蓝田县| 怀来县| 陇川县| 馆陶县| 亚东县| 汤阴县| 屏东市| 普安县| 满洲里市|