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

歷史上的今天

今天是:2025年03月25日(星期二)

正在發生

2020年03月25日 | stm32 usb和安卓手機的通訊過程

發布者:感恩的7號 來源: eefocus關鍵字:stm32  usb  安卓手機  通訊過程 手機看文章 掃描二維碼
隨時隨地手機看文章

前段時間公司開發了一個安卓外設,主要是用某寶淘來的demo 在stm32F103的usb功能來和安卓設備的usb來通訊


敘述之前先來一個整體的框圖吧:

在這里插入圖片描述

需要準備的設備有:


①.安卓手機或者安卓pad,(手機必須支持otg功能,否則就得用host功能了)

②.otg轉接線或者轉接頭

③.安卓數據線(一定要是能通訊數據的線纜,有些山寨的這個線只有2根線,沒有數據線)

④.帶有usb功能的單片機(這個usb需要能支持用戶自行定義)


接下來就開始搗鼓stm32單片機程序了,下面是usb功能的代碼

usb功能看了一下主要是借助hid的標準協議上衍生而來的一個usb標準設備


/******************** (C) COPYRIGHT 2010 STMicroelectronics ********************

* File Name          : usb_desc.c

* Author             : MCD Application Team

* Version            : V3.2.1

* Date               : 07/05/2010

* Description        : Descriptors for Mass Storage Device

********************************************************************************

* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS

* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.

* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,

* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE

* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING

* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.

*******************************************************************************/


/* Includes ------------------------------------------------------------------*/

#include "usb_desc.h"

/* Private typedef -----------------------------------------------------------*/

/* Private define ------------------------------------------------------------*/

/* Private macro -------------------------------------------------------------*/

/* Private variables ---------------------------------------------------------*/

/* Extern variables ----------------------------------------------------------*/

/* Private function prototypes -----------------------------------------------*/

/* Private functions ---------------------------------------------------------*/


/* USB Standard Device Descriptor */


const u8 CustomHID_DeviceDescriptor[CUSTOMHID_SIZ_DEVICE_DESC] =

  {

    0x12,                       /*bLength */

    USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType*/

    0x00,0x02,                  /*bcdUSB */

    0x00,                       /*bDeviceClass*/

    0x00,                       /*bDeviceSubClass*/

    0x00,                       /*bDeviceProtocol*/

    0x08,                       /*bMaxPacketSize40*/

    0x71,0x04,                  /*idVendor (0x0471)*/

    0x08,0x24,                  /*idProduct = 0x2408*/

    0x00,0x02,                  /*bcdDevice rel. 2.00*/

    1,                          /*Index of string descriptor describing manufacturer */

    2,                          /*Index of string descriptor describing product*/

    3,                          /*Index of string descriptor describing the device serial number */

    0x01                        /*bNumConfigurations*/

  }

  ; /* CustomHID_DeviceDescriptor */



/* USB Configuration Descriptor */

/*   All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */

const u8 CustomHID_ConfigDescriptor[ENEPOINT_NUM*7+18] =

  {

    0x09, /* bLength: Configuation Descriptor size */

    USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */

    ENEPOINT_NUM*7+18,    /*CUSTOMHID_SIZ_CONFIG_DESC, wTotalLength: Bytes returned */

    0x00,

    0x01,         /* bNumInterfaces: 1 interface */

    0x01,         /* bConfigurationValue: Configuration value */

    0x00,         /* iConfiguration: Index of string descriptor describing

                                 the configuration*/

    0xC0,         /* bmAttributes: Bus powered */

    0x32,         /* MaxPower 100 mA: this current is used for detecting Vbus */


    /************** Descriptor of Custom HID interface ****************/

    /* 09 */

    0x09,         /* bLength: Interface Descriptor size */

    USB_INTERFACE_DESCRIPTOR_TYPE,/* bDescriptorType: Interface descriptor type */

    0x00,         /* bInterfaceNumber: Number of Interface */

    0x00,         /* bAlternateSetting: Alternate setting */

    ENEPOINT_NUM,         /* bNumEndpoints */

    0x00,         /* bInterfaceClass: HID=0X03,其他選0 */

    0x00,         /* bInterfaceSubClass : 1=BOOT, 0=no boot */

    0x00,         /* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */

    0,            /* iInterface: Index of string descriptor */

    /********************以下只對HID的描述符  Descriptor of Custom HID HID ********************/

    /* 18 */

  //  0x09,         /* bLength: HID Descriptor size */

  //  HID_DESCRIPTOR_TYPE, /* bDescriptorType: HID */

  //  0x10,         /* bcdHID: HID Class Spec release number */

  //  0x01,

  //  0x00,         /* bCountryCode: Hardware target country */

  //  0x01,         /* bNumDescriptors: Number of HID class descriptors to follow */

  //  0x22,         /* bDescriptorType */

  //  CUSTOMHID_SIZ_REPORT_DESC,/* wItemLength: Total length of Report descriptor */

  //  0x00,

  

  

  /******************** Descriptor of Custom endpoints ******************/

   

    0x07, /* bLength: Endpoint Descriptor size */

    USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: */

/* Endpoint descriptor type */

    0x01, /* bEndpointAddress: */

/* Endpoint Address (OUT) */

    USB_ENDPOINT_TYPE_BULK,/* bmAttributes: Interrupt endpoint */

    0x10,0x00, /* wMaxPacketSize: 32 Bytes max  */

    0x20, /* bInterval: Polling Interval (20 ms) */

    

   /* 27 */  

    0x07,          /* bLength: Endpoint Descriptor size */

    USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: */

    0x81,          /* bEndpointAddress: Endpoint Address (IN) */

  USB_ENDPOINT_TYPE_BULK,          /* bmAttributes: Interrupt endpoint */

    0x10, 0x00,         /* wMaxPacketSize: 32 Bytes max */

    0x20,          /* bInterval: Polling Interval (32 ms) */

    /* 34 */

    

    0x07, /* bLength: Endpoint Descriptor size */

    USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: */

/* Endpoint descriptor type */

    0x82, /* bEndpointAddress: */

/* Endpoint Address (OUT) */

    USB_ENDPOINT_TYPE_BULK,/* bmAttributes: Interrupt endpoint */

    0x40,0x00, /* wMaxPacketSize: 512 Bytes max  */

    0x20 /* bInterval: Polling Interval (20 ms) */   

  }

  ;


/* USB String Descriptors (optional) */

const u8 CustomHID_StringLangID[CUSTOMHID_SIZ_STRING_LANGID] =

  {

CUSTOMHID_SIZ_STRING_LANGID,

USB_STRING_DESCRIPTOR_TYPE,

0x09,

0x04

  }

  ; /* LangID = 0x0409: U.S. English */


const u8 CustomHID_StringVendor[CUSTOMHID_SIZ_STRING_VENDOR] =

  {

    CUSTOMHID_SIZ_STRING_VENDOR, /* Size of Vendor string */

    USB_STRING_DESCRIPTOR_TYPE,  /* bDescriptorType*/

    /* Manufacturer: "STMicroelectronics" */

'O', 0,

'T', 0,

'G', 0,

  };


const u8 CustomHID_StringProduct[CUSTOMHID_SIZ_STRING_PRODUCT] =

  {

    CUSTOMHID_SIZ_STRING_PRODUCT,          /* bLength */

    USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */

'S', 0,

'T', 0,

'M', 0,

'3', 0,

'2', 0,

'A',0,

'n',0,

'd',0,

'r',0,

'o',0,

'i',0,

'd',0,

' ',0,

'U',0,

'S',0,

'B',0,

' ',0,

'O', 0,

'T', 0,

'G', 0,

  };

u8 CustomHID_StringSerial[CUSTOMHID_SIZ_STRING_SERIAL] =

  {

    CUSTOMHID_SIZ_STRING_SERIAL,           /* bLength */

    USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */

'T', 0,

'a', 0,

'o', 0,

'b', 0,

'a', 0,

'o', 0,

'-', 0,

'B', 0,

'e', 0,

'i', 0,

'j', 0,

'i',0,

'n',0,

'g',0,

'Y',0,

[1] [2]
關鍵字:stm32  usb  安卓手機  通訊過程 引用地址:stm32 usb和安卓手機的通訊過程

上一篇:利用樹莓派打造STM32無線在線調試器!
下一篇:stm32在linux編譯,遠程調試

推薦閱讀

美的集團收購庫卡后首次對外公布發展計劃。3月21日,美的集團宣布將向庫卡中國下屬業務注資,共同成立3家合資公司,以拓展工業機器人、醫療、倉儲自動化三大領域的業務,以順應中國市場在智能制造、智能醫療和智能物流、新零售等方面的高速發展需求,開發適合中國客戶需求的產品和解決方案。庫卡被美的收購,如何拓展潛力巨大的中國市場一直頗受關注。美的...
你想象中的未來,我們將用何種方式通勤或是在節假日出行呢?那時我們將如何從A地前往B地呢?你應該會想到自動駕駛,這也正是現在眾多汽車公司研究的方向并為搭建更智能的交通出行生態系統而努力。但你可能不知道的是,在通往未來的過程中,許多前沿科技已經應用在我們的車輛中,感你未感,想你所想,讓駕駛者能夠更從容地享受駕駛的樂趣。福特汽車推出的Co...
前言:PYNQ全稱為Python Productivity for Zynq,即在Zynq全可編程ARM&FPGA融合處理架構的基礎上,添加了對Python的支持。 PYNQ希望能夠借助Python語言本身易用易學、擴展庫多而全、社區活躍貢獻度高等特性,有效降低Zynq嵌入式系統的開發門檻,并為人工智能,ADAS,機器視覺等高拓展性/高復雜度應用需求提供更好支撐。PYNQ將ARM處理器與FPGA器件的底層交...
蘋果今天發布了iOS 14.5和iPadOS 14.5第五個測試版,距離上個測試版相隔一周周時間。  iOS 14.5 最重要的功能就是加入了Apple Watch解鎖iPhone,在疫情期間,由于佩戴口罩,iPhone面容ID解鎖非常不方便。  此外,iOS 14.5還為iPhone 12型號加入了雙卡5G模式,兩張SIM卡都可以享受5G網絡。  watchOS 7.4 和 tvOS 14.5 第五個測...

史海拾趣

問答坊 | AI 解惑

C51RF-WSN無線傳感器網絡開發系統全新改版

C51RF-WSN無線傳感器網絡開發系統全新改版                         …

查看全部問答∨

單電源運放圖集

本帖最后由 paulhyde 于 2014-9-15 09:15 編輯 如題  …

查看全部問答∨

串口發送long類型數據

串口發送數據,long類型,四字節,范圍是0x00 ~ 0x7fffffff 每次發送1個字節,比如0x7abcdeff,第一次發送7a,第二次發送bc,第三次發送de,第四次發送ff 接收端在接收到數據后,要組合成原來的樣子。 該怎么操作?用C語言。…

查看全部問答∨

2個小問題,請教各位!!!

1、wince的backspace也就是vk_back鍵盤消息    在WINCE桌面&焦點不在任務欄上時,一發這個消息就把IE打開    請問有好的解決方法嗎?    或者微軟有明文說明這個是他的一個功能!!!??? 2、是否有人用過這 ...…

查看全部問答∨

關于相MSP430的flash中存入結構體鏈表的問題

小弟最近在做一個項目需要將一段結構體鏈表放入片內供程序查詢用 但是放入RAM中不太現實,我用的MSP430F149的RAM只有2K大小,但有60K的Flash存儲 如何在能將這個結構體鏈表放入Flash中呢 結構體定義如下 struct py_subnode{   uns ...…

查看全部問答∨

stm32之pwm

#include "stm32f10x.h"#include"stm32f10x_tim.h"#include"stm32f10x_rcc.h"void RCC_Configuration(void);void GPIO_Configuration(void);void TIM_Configuration(void);int main(void){{RCC_Configuration();GPIO_Configuration();TIM_Configura ...…

查看全部問答∨

NSJS16R1學習板原理圖 acoba

就是這次USB學習板活動的原理圖pdf格式,如果acrobat打不開,請用foxit reader打開…

查看全部問答∨

求MSP430F1232的ADC10轉換程序

希望是C和匯編兩個版本的,能詳細點最好 非常感謝!…

查看全部問答∨

跪求大神幫忙求大神幫忙!!!!!!

大神幫幫忙看看這些線要怎么接才能點亮他!!!!!!!還有這些線都有什么功用麻煩給解釋一下~~~謝謝大神們 大神幫幫忙看看這些線要怎么接才能點亮他!!!!!!!還有這些線都有什么功用怎么接麻煩給解釋一下~~~謝謝大神們…

查看全部問答∨

MSP430低功耗和喚醒

為什么低功耗還可以進入中斷程序,中斷的時鐘源是什么?…

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

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

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

更多每日新聞

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 铜鼓县| 榆林市| 黄平县| 开远市| 巴中市| 和顺县| 吉林省| 资阳市| 福建省| 南涧| 道真| 平远县| 靖西县| 五常市| 那曲县| 株洲县| 顺平县| 永兴县| 镇沅| 商都县| 若尔盖县| 霞浦县| 高尔夫| 舞阳县| 海淀区| 石林| 华池县| 白城市| 谢通门县| 锡林郭勒盟| 长寿区| 和田市| 突泉县| 灵寿县| 关岭| 宣威市| 永州市| 东乡县| 米易县| 启东市| 南阳市|